3

我注意到如果我做一个

git rebase -i HEAD~10

然后不要更改结果文件中的任何内容,仍然会执行某种变基。即我需要

git push origin branch --force

因为经常推

git push origin branch

显然会失去历史!

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

4

1 回答 1

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

因此,可能发生的情况是,您正在对另一个人所做的提交进行变基,并且它正在更改提交和 CommitDate。显然 git 会看到一个新的哈希(因为提交的一部分已更改)并注意更改。

于 2012-07-03T16:46:02.990 回答