2012-02-03 54 views
1

假設我有一個本地回購與原產地完全保持一致。安全地使用各種遠程提交重新綁定新的本地分支?

它是安全的,從一個特定的SHA創建一個新的分支,然後做一切我想我對其他分支/ SHA的新分支的墊底,其存在的來歷?

git checkout -b merging_some_commits bfd70a83f5bf3f7fd44422233a82751535428cbd 

git rebase --onto some_other_branch 02979b4e34809d53e5071501046f59ad5c 

git checkout some_other_branch 

git merge mergin_some_commits 

git push origin some_other_branch 

更新:基本上,我想挑櫻桃02979b... - bfd70a83...some_other_branch02979b...bfd70a83...的祖先既沒有與some_other_branch共享最近的歷史記錄。假設在02979b...之前有10-15次提交給我不想要的共享共同祖先(還)。最終這10-15次提交也需要合併。

+1

這將有助於瞭解兩個SHA的含義是什麼02979b4e34809d53e5071501046f59ad5c bfd70a83f5bf3f7fd44422233a82751535428cbd的祖先?並且是some_other_branch的祖先? – avh 2012-02-03 21:16:06

+0

更新...我假設,如果你甚至不得不問,那麼我不想這樣做。 – drstevens 2012-02-03 21:21:53

回答

2

是的,你有什麼有看上去很好,而且它應該做你描述你在更新想要的東西。正如@haydenmuhi所描述的,幾乎任何東西在您的本地存儲庫中都是「安全的」。當你推動時,所有重要的是你正在推動的分支上的提交 - 他們來自哪裏以及你擁有的任何其他分支都不會產生影響。

至於後來合併其他10-15承諾,你應該能夠做到這一點,將來就好要麼簡單地合併02979bbfd70a83,或重訂some_other_branch..02979bsome_other_branch..02979b。如果在合併之前還需要一段時間,你現在可能需要將它們重新綁定到some_other_branch上以幫助它們保持最新狀態。

+0

謝謝,我不能在'029'之前把所有東西都拿走,因爲它會讓其他人重構。如果可以的話,我會只用'合併'。 – drstevens 2012-02-03 21:43:59

4

如果一個提交是本地的,只有本地的,你可以做任何你想要的。只要您從未將該承諾推送到遠程回購,那麼以任何方式進行修改都是公平的,包括重新分配。無論你在底線上放置什麼都沒有關係,因爲小孩提交不會影響他們的祖先。

+0

我執行了rebase並且沒有創建新的提交。實際上,現在的提交在smartgit中查看歷史時現在顯示兩次(僅用於查看和區分歷史記錄)。合併到merge_come_commits中將創建一個新的提交。 – drstevens 2012-02-03 21:31:44

+0

感謝您的回覆。我會將你的標記標記爲答案,但它仍然部分凌駕於我的頭上。 – drstevens 2012-02-03 21:45:16

相關問題