Git rebase 和签名提交

5
假设有一个git仓库,其中以下内容是正确的:
- 大多数提交都已签名。 - 经常使用变基,以便拥有干净的历史记录。 - 有时多个人在同一个分支上工作。 - 假设签署提交意味着签署等效差异,而不是签署整个存储库的状态(尽管签署提交也会签署祖先哈希)
现在,我想变基一个分支,在那里我完成了部分工作,一个同事推送了一些提交;我想“保留”我所做的提交上的签名(即,重新使用新历史记录签署我所做的所有提交,即使出现合并冲突),但不要签署我未编写的工作(即,我更喜欢失去来自我的同事的提交的签名而不是签署它们)。
我可以使用git rebase -S(就像在这个问题的回答中提出的那样);但那也会签署我的同事的提交。
有没有办法做到这一点?
1个回答

2
请注意,这是一种 hacky 的答案,您应该强烈考虑使用 Cupcake@ answer 作为您正在尝试的阻止程序。(即使您只签署提交引入的“diff”,如果在变基期间出现冲突会发生什么?谁签署解决冲突后引入的代码?)
话虽如此,您可以做的是进行变基,失去 GPG 签名。然后使用 git filter-branch 进行 某些魔法,以使用您的密钥重新 GPG 签署由您编写的提交和由其他人编写的提交。

这似乎指向一个方向,即接受历史记录并不“干净”的事实,使用有符号合并而不是变基。 - Iizuki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接