2014-10-09 94 views
3

我有兩個分支:Master和Feature。撤消主入功能的git合併

我對Master進行了一些更改,並希望將它們複製到Feature中。所以我把Master融入了Feature。很明顯,這是錯誤的做法,因爲之前對Feature的更改出現在Master中。

What I expected: 
A - B - - - - E - G [master] 
    \   \ 
     C - D - - F - H [feature] 

What it looks like now: 
         G [master] 
        /
A - B - C - D - E - F - H [feature] 

這裏是最有趣的部分:我合併的主進功能注意到這個問題前兩次,我做了額外提交到兩個分支。如何撤消合併或使其成爲Master,不受Feature的提交影響?

+0

這不是答案,而是對未來的建議。不是將'master'合併到'feature'中,而是使用'git rebase'。例如,一旦你在'feature'分支('git checkout feature')上,你就會調用'git rebase master',它會應用'master'中的變化,但是還沒有在'feature'中。請參閱[本頁](http://git-scm.com/book/ch3-6.html)獲取關於合併和重組的更多信息。 – 2014-10-09 17:29:07

+1

您的ASCII圖形不清楚/不明確。請閱讀[我的答案]頂部的評論(http://stackoverflow.com/questions/25488138/move-initial-commits-off-master-to-another-branch-in-git/25490288#25490288 ),並更正你的圖表,所以我們知道你的分支正在指向哪裏。 – Jubobs 2014-10-09 17:32:59

+1

@hunch_hunch說這是危險的建議。如果功能分支被推到某個地方而其他人正在使用它呢?重新激活仍然是一項高級功能。首先應該掌握簡單的合併。 – musiKk 2014-10-09 17:44:26

回答

0

鑑於您在問題中畫出的樹,您想撤消對主人提交C,D和F.要完成此操作,請從命令提示符下鍵入:

git checkout master 
git revert C 
git revert D 
git revert F