为什么git rebase --on a b,git rebase --onto b a创建一个与原始不同的SHA1?

时间:2011-02-24 04:33:10

标签: git

假设您有以下修订图,c为当前分支:

c   a
 \ /
  b

git rebase --onto a b创建以下内容:

    c
   /
  a
 /
b

git rebase --onto b a将图表返回到:

c   a
 \ /
  b

但是,在两次重新划分之前,c的新SHA1与c的旧SHA1不同。为什么会这样?

1 个答案:

答案 0 :(得分:7)

提交的SHA1取决于提交的所有内容,包括元数据。特别是,它取决于提交时间戳。你的两次重定位提交有一个新的时间戳,所以它有一个新的SHA1。

(注意,最初编写时有一个“作者日期”,以及记录实际提交时的“提交者日期”。只有后者发生了变化。要自己查看,请使用{{1}或者只是查看git log --pretty=fuller中的提交。)