目前我有兩個分支:Master和Dev。在上個星期,我提交了關於分支Master(分支錯誤)的工作,現在我需要將這些提交更改爲DEV分支(右分支),有什麼更好的方法來做到這一點?將提交更改爲另一個分支
即時通訊使用的是Mac
乾杯github上桌面, 拉斐爾
目前我有兩個分支:Master和Dev。在上個星期,我提交了關於分支Master(分支錯誤)的工作,現在我需要將這些提交更改爲DEV分支(右分支),有什麼更好的方法來做到這一點?將提交更改爲另一個分支
即時通訊使用的是Mac
乾杯github上桌面, 拉斐爾
你的問題還不清楚。所以我假設你需要你的老版本的主版本,並且你需要你的新版本的Dev。這意味着你將需要改變你的git歷史記錄。如果你已經將這些提交推送到你的遙控器,這不是你應該做的,因爲你不想搞亂git歷史。
你要做的是從主人提交cherry-pick
,然後將主人重置爲提交之前。
之前,你這樣做,你應該備份您的數據:
git checkout master
git checkout -b backup_master
git checkout DEV
git checkout -b backup_DEV
我的想法是使用補丁,以避免可能的衝突。
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上的提交。然後用一條好消息將其提交回去。我認爲這可能會做到。請糾正我,如果我誤解了,或者如果我是公然錯誤的傢伙。
如果您已將這些提交推送到遠程,則無法從MASTER分支中刪除提交。
你可以做一件事取得最新的MASTER分支代碼到DEV分支。
爲: 備份您的Dev分支git checkout -b backup_DEV
則:
git checkout DEV
git stash
git rebase MASTER
git push DEV
git stash pop
現在你可以看到在DEV犯下。
您能否通過圖表向我們展示'Dev'和'Master'分支之間的關係? –