如果什么都没有改变,rebase -i会做什么?

时间:2012-06-29 20:10:55

标签: git-rebase

我注意到如果我做了

git rebase -i HEAD~10

然后不要更改生成的文件中的任何内容,仍会执行某种rebase。即我需要

git push origin branch --force

自定期推送

git push origin branch

显然会失去历史!

这似乎意味着某些历史被改变但我不明白为什么。如果我没有选择更改任何提交(即每次提交都被选中)那么为什么历史会发生变化以及具体改变了什么?

1 个答案:

答案 0 :(得分:3)

如果您执行git log --format=fuller,您将看到提交不仅会跟踪作者,还会跟踪提交者:

commit 0d987988ffed315ef63f79b33eae40a8715390c9
Author:     Statichippo <example@example.com>
AuthorDate: Fri Jun 22 14:09:48 2012 -0400
Commit:     Statichippo  <example@example.com>
CommitDate: Fri Jun 22 14:09:48 2012 -0400

    a commit message

重新绑定时,您的用户将被列为新提交者。这是一个例子,说明如果我重新设置代码块会是什么样子:

commit 3e23bea3c778c66h59c5f665061e9354507b379b
Author:     Statichippo <example@example.com>
AuthorDate: Fri Jun 22 14:09:48 2012 -0400
Commit:     Jacob Angel <jangel@example.com>
CommitDate: Tue Jul 3 12:39:43 2012 -0400

    a commit message

所以可能发生的事情是你正在重新设定由另一个人提交的提交,并且它正在改变提交和提交日期。显然git会看到一个新的哈希(因为提交的一部分已经改变)并注意到这一变化。