Git rebase和签名提交

时间:2015-11-29 02:27:49

标签: git version-control sign

让我们假设一个git存储库,其中包含以下内容:

  • 大多数提交都已签名。
  • 经常使用Rebases,以便拥有干净的历史。
  • 有时多人在同一个分支上工作。
  • 签名提交被认为意味着签署等效的差异,而不是签署repo的整个状态(尽管签名提交也签署了祖先的哈希)

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

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

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

请注意,这是一个愚蠢的答案,你应该强烈考虑Cupcake@ answer作为你正在尝试做的事情的阻碍。 (即使您只签署了提交引入的" diff"如果您在rebase期间发生冲突会发生什么?谁签署冲突解决引入的代码?)

那说,你能做的就是变基,松散gpg签名。然后使用git filter-branch执行some magic重新gpg签署您使用密钥创作的提交,以及其他人使用其密钥撰写的提交。