2011-12-06 216 views
3

如何更改/删除提交历史记录?更改git提交历史记录,但保留更改

我一直在从我的家用电脑上开发一个项目,其中git config user.name与办公室中的不同。 我不想让刻痕混在一起。 我已经将代码推送到官方存储库。

在提交历史,截至目前,我有记录为: 由“my_home_nick”

承诺,但我希望所有的提交信息的显示为: 由“my_office_nick”

承诺有没有做这件事?

总之说,有日志: 通过X

致力于我想,要改变以 致力于为y

+1

你应该考虑改写你的问题的标题......我认为通过“删除提交历史记录”你真的意思是“改变提交历史”。他们是非常不同的东西。 – meagar

回答

2

是的,看看git filter-branch命令。它会根据需要重写历史记录。

请记住,它会创建一个新的历史记录。创建新的历史记录并将分支指向它在git中称为“倒回”,并且如果使用更常见的命令(如git rebase),也会发生这种情况。只要没有人把他们的工作放在旧的历史上,没关系,但如果他们这样做了,就会引起很大的混乱。现有的历史由它的SHA1哈希标识,是不可变的。

0

您可以使用下列选项

  1. 您可以南瓜/大整编的commit命令使用Git的变基的一个或多个--interactive

  2. 如果你还没有使用my_home_nick推变化官方仓库,你可以创建另一个克隆,并用正确的用户名进行合并/更改

  3. 你可以使用git filter-branch来修复提交者名称

0

Here是与许多答案相同的问题。

你说你推到了“官方仓库”,但是如果你不是这个仓库的唯一提交者,并且有人已经提交了不正确的提交,或者更糟糕的是,在提交之上进行了一些更改,留下不正确的提交者名称将会因为git确实不允许更改提交,所以它只允许创建替代历史来代替不正确,正如Jan Hudec所写的那样。

+0

我是唯一的提交者。 – user993563

相关问题