4
假設你有以下版本圖,用c作爲當前分支:爲什麼git rebase - 去掉b,git rebase - 去創建一個與原來不同的SHA1?
c a
\/
b
git rebase --onto a b
創建以下:
c
/
a
/
b
和git rebase --onto b a
返回圖表:
c a
\/
b
但是,在兩次rebasings之前,c的新SHA1與c的舊SHA1不同。爲什麼會這樣?
有趣。令我感到困惑的是,當沒有額外的提交通過新基地進行重新投標時,它並沒有改變SHA1。我猜如果你有新的基礎之外的額外工作,它需要創建新的提交,並因此創建一個新的時間戳。 – jonderry 2011-02-24 05:10:16
@jonderry:我相信rebase足夠聰明,如果沒有必要,就不會做任何事情。 – Cascabel 2011-02-24 05:47:19
我不會像* history *那樣指出時間戳。一個提交有一個父項,並且包含在哈希中。如果父母更改,則提交更改。如果父母沒有改變,而且沒有其他任何關於提交的內容正在改變,那麼沒有必要做任何事情。 – Dustin 2011-02-24 08:05:19