删除提交的人

时间:2017-10-04 22:20:45

标签: git github

我做了一个git rebase来修改我以前的提交。结构如下:HEAD->another_person's_commit->my_commit->...

我修改了my_commitgit rebase --continue然后推送,另一个人做出的第一次提交得到了更改",状态变为person commit with me。 I.E,他是提交作者,我是一个改变了#34;提交。我理解git rebase将改变修改版本中的所有提交(比如从更改的点创建新分支)。

所以问题是可以在提交时删除我的名字吗?

1 个答案:

答案 0 :(得分:1)

在Git中,对提交的任何更改 - 即使只是一个不同的(修改的)提交实际上会使子提交变成新的子提交。

如果在rebase之前,你有:

x - x - x - you - him - x  

然后在rebase之后你真的有:

x - x - x - you - him - x  
         \
          you' - him' - x'

即使您为him'提供与him完全相同的提交消息,因为在him'的散列中是不同的父提交(you'),然后在{ {1}},这意味着哈希值会发生变化(即使提交者信息保持不变) - 它不再是相同的提交。

现在,授予rebase实际上删除了him的链接,他们将收集垃圾,只留下:

you - him - x

没有理由将你删除为提交者 - 它显示了所发生事件的真相。你可以"伪造它"通过将你的user.name和user.email更改为他的名字和电子邮件,然后重新修改他的提交......这可能是一个低级管道命令或其他直接用标志执行此操作的方法。但为什么?没有什么可以获得的。他是原作者,您现在是这个新x - x - x - you' - him' - x' 提交的提交者。

如果你想澄清发生了什么,你可以修改他的提交信息,并添加一个注释:[由于rebase,没有改变而重新启动]或类似。