繁体   English   中英

Git rebase 和签名提交

[英]Git rebase and signed commits

让我们假设一个 git 存储库,其中满足以下条件:

  • 大多数提交都已签名。
  • 经常使用变基,以便有一个干净的历史。
  • 有时多人在同一个分支上工作。
  • 假设对提交进行签名意味着对等效的差异进行签名,而不是对存储库的整个状态进行签名(尽管签名的提交也对祖先的哈希进行了签名)

现在,我想重新设置一个分支,在那里我完成了部分工作,并且一位同事推送了一些提交; 并且我想在我所做的提交上“保留”签名(即重新签署我使用新历史所做的所有提交,即使在合并冲突的情况下),但不要签署不是我写的工作(即。我更喜欢丢失同事提交的签名而不是签名)。

我可以使用git rebase -S (就像在这个问题的答案中提出的那样); 但这也会签署我同事的承诺。

有没有办法做到这一点?

请记住,这是一个笨拙的答案,您应该强烈考虑将Cupcake@ 答案视为您尝试做的事情的障碍。 (即使您只对提交引入的“差异”进行签名,如果在 rebase 期间发生冲突会怎样?谁对冲突解决引入的代码进行签名?)

也就是说,您可以做的是变基,松开 gpg 签名。 然后使用git filter-branch一些魔术来重新 gpg 签名您使用您的密钥创作的提交,以及其他人使用他们的密钥创作的提交。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM