2016-05-18 26 views
0

目前我有兩個分支:Master和Dev。在上個星期,我提交了關於分支Master(分支錯誤)的工作,現在我需要將這些提交更改爲DEV分支(右分支),有什麼更好的方法來做到這一點?將提交更改爲另一個分支

即時通訊使用的是Mac

乾杯github上桌面, 拉斐爾

+0

您能否通過圖表向我們展示'Dev'和'Master'分支之間的關係? –

回答

0

你的問題還不清楚。所以我假設你需要你的老版本的主版本,並且你需要你的新版本的Dev。這意味着你將需要改變你的git歷史記錄。如果你已經將這些提交推送到你的遙控器,這不是你應該做的,因爲你不想搞亂git歷史。

你要做的是從主人提交cherry-pick,然後將主人重置爲提交之前。

之前,你這樣做,你應該備份您的數據:

git checkout master 
git checkout -b backup_master 
git checkout DEV 
git checkout -b backup_DEV 

如何挑櫻桃: How to cherry-pick multiple commits

0

我的想法是使用補丁,以避免可能的衝突。

git checkout master 
git format-patch -1 HEAD (if thats all you want) 
git checkout dev 
git apply —check file.patch (check it first) 
git am < file.patch 

更換HEAD與SHA哈希的最古老的承諾,你會想,然後它會創建一個* .patch每個承諾電流。然後將它們單獨應用於正確的順序。

然後,您可以再次簽出master,通過簽出SHA哈希來更改到您不想在master上的提交。然後用一條好消息將其提交回去。我認爲這可能會做到。請糾正我,如果我誤解了,或者如果我是公然錯誤的傢伙。

0

如果您已將這些提交推送到遠程,則無法從MASTER分支中刪除提交。

你可以做一件事取得最新的MASTER分支代碼到DEV分支。

爲: 備份您的Dev分支git checkout -b backup_DEV則:

git checkout DEV 

git stash 

git rebase MASTER 

git push DEV 

git stash pop 

現在你可以看到在DEV犯下。

相關問題