当存在分支的派生版本时,是否有优雅的方式来更改git分支的历史记录?

3
我希望使用git的filter-branch功能来更正一些无效的作者信息。问题是,分支有一些forks,这些forks将不再同步。
有没有办法将提交日志中的更改合并到这些forks中?
3个回答

3
重写历史会创建新的提交,而外部仓库中无法删除旧的提交。如果其他仓库包含基于您重写的提交进行的提交,则必须将它们重新到基于重写的提交上。因此,如果您无法控制所有包含不正确提交的仓库(如果您已发表该提交,则无法进行控制),则无法进行更改。

“没有办法”……优雅地完成它。你当然可以做筛选分支,但如果有人在旧分支上工作,那么这将不会是优雅的。 - Tekkub

3
在这种情况下,你可以做的最好的事情是添加注释(git notes)。
如在“使用git notes分配真实贡献信用”中所述:
引用:

我们可以使用Git的notes功能来解决与归功于应该得到认可的问题有关的大量问题。基本上,notes是一种可以将附加元数据附加到提交的方法。

我们想要多少个名称空间,每个名称空间中有多少项都可以。同一个人可以因为做了多件事情而获得信用。

因此,为这种类型的更正定义一个特殊的命名空间,至少信息可以存在于此处(并被克隆)。

1

可以继续进行更改,但要使用新的分支名称或标签来保留旧的历史记录。让它具有描述性,因为每个人都会有一个“WTF”时刻。他们可以通过变基来继续贡献。或者你也可以友好地给他们发电子邮件,告诉他们你做了什么,这样他们就可以跳过“WTF”部分 ;)


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