有没有办法优雅地改变git分支的历史?

时间:2011-09-04 11:06:15

标签: git github

我想使用git的filter-branch功能更正一些无效的作者身份信息。问题是分支的叉子会不同步。

是否有将提交日志的更改合并到分支中?

3 个答案:

答案 0 :(得分:3)

重写历史记录会创建新的提交,并且无法从外部存储库中删除旧的提交。如果其他repos包含基于你重写的提交,那么它们必须重新定义到重写的那些。因此,如果您无法控制所有具有错误提交的回购(如果您已发布该提交,则无法拥有它),则无法实现。

答案 1 :(得分:3)

在这种情况下,您可以做的最好的事情是添加备注( git notes )。

如“Using git notes for doling out real contribution credit”中所述:

  

我们可以使用Git的笔记功能来解决我们在信用到期时提供信贷的大量问题   基本上,笔记是一种可以将其他元数据附加到提交的方式。

     

我们想要多少名称空间,以及我们想要的每个名称空间中的多个项目。同一个人可以因为做多件事而获得荣誉。

因此,为这种修正定义一个特殊的命名空间,至少这些信息可以在这里生存(并克隆)。

答案 2 :(得分:1)

继续进行更改,但使用新的分支名称或标记保留旧历史记录。将其描述为每个人都有WTF时刻。由他们决定改变他们的突出变化以继续贡献。或者你可以很好,并通过电子邮件发送你所做的事情,以便他们跳过WTF部分;)