让我们假设一个 git 存储库,其中满足以下条件:
现在,我想重新设置一个分支,在那里我完成了部分工作,并且一位同事推送了一些提交;并且我想在我所做的提交上“保留”签名(即重新签署我使用新历史所做的所有提交,即使在 merge 冲突的情况下),但不要签署不是我写的工作(即。我更喜欢丢失同事提交的签名而不是签名)。
我可以用
git rebase -S
(就像在对 this question 的回答中提出的那样);但这也会签署我同事的 promise 。有没有办法做到这一点?
最佳答案
请记住,这是一个笨拙的答案,您应该强烈考虑 Cupcake@ answer作为您正在尝试做的事情的阻滞剂。 (即使您只对提交引入的“差异”进行签名,如果在 rebase 期间发生冲突会怎样?谁对冲突解决引入的代码进行签名?)
也就是说,您可以做的是 rebase ,松开 gpg 签名。然后用 git filter-branch
做 some magic对您使用您的 key 编写的提交以及其他人使用他们的 key 编写的提交进行重新 gpg 签名。
关于Git rebase 和签名提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33978743/