我使用git rebase --onto target source foo
將分支foo
從分支source
移動到分支target
。你知道是否有可能使用散列值而不是分支名稱(如果沒有給出),像這樣:git rebase --onto ab91c f4242 foo
?
作爲一種解決方法,我臨時將分支名稱添加到相關的提交對象。但是如果你有很多分公司需要重新設計,那麼這可能是一個皮塔。如何使用散列來代替分支名稱來改變分隔符?
示例情況:
° bb42a
° ab91c
° 979c2
/° fb648 foo
° f4242 --
° 333c9
後git rebase --onto ...
° bb42a
/° fb648 foo
° ab91c --
° 979c2
° f4242
° 333c9
背景:
的解釋問題是很常見的,如果你使用SVN服務器爲你遠程倉庫。你所有提交的對象都會被重寫,因爲每當你將git svn dcommit
添加到svn-repository時,svn-id就會被添加。這從所有其他分支從他們的前大師。
當您嘗試使用散列值時,得到了什麼錯誤消息? git rebase手冊頁確實提到「可能是任何有效的提交,而不僅僅是現有的分支名稱。」 – VonC
我只在svn場景中嘗試過。我只是用一個本地的git倉庫來試用它。有用。我會在明天與svn一起嘗試。有一個類似「索引對象未找到」的錯誤消息,但我必須重現它才能準確說明消息。 – JJD
好的,我明天再回來查看;)請注意,'git svn rebase'與'git rebase'完全不同。 – VonC