我做了一个git rebase
来修改我以前的提交。结构如下:HEAD->another_person's_commit->my_commit->...
我修改了my_commit
和git rebase --continue
然后推送,另一个人做出的第一次提交得到了更改",状态变为person commit with me
。 I.E,他是提交作者,我是一个改变了#34;提交。我理解git rebase
将改变修改版本中的所有提交(比如从更改的点创建新分支)。
所以问题是可以在提交时删除我的名字吗?
答案 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,没有改变而重新启动]或类似。