2017-10-08 102 views
0

我有一個主分支,其中有一個文件Demo.txt。它具有以下2行:

AAAAAA
BBBBBB

甲新分支Dev已經被從主此時分支。分支開發現在包含Demo.txt同爲2線,即

AAAAAA
BBBBBB
還原一個合併衝突的合併,並已被推送到遠程合併的衝突

讓我們假設我籤主,並添加一個新行Demo.txt使該文件變爲:

AAAAAA
BBBBBB
XXXXXX

同樣,我再結帳開發和添加新線Demo.txt使該文件變爲:

AAAAAA
BBBBBB
YYYYYY

現在我籤主人和合並開發了進去。第三行文件Demo.txt中存在合併衝突。讓我們假設通過保持master和Dev分支的條目來解決衝突。讓我們假設合併後的新文件看起來像:

AAAAAA
BBBBBB
XXXXXX
YYYYYY

現在我犯了合併,並將它推到遠程存儲庫。讓我們假設合併的提交ID是類似abcdef056fg(僅作爲示例)。在推送合併之後,我發現解決合併衝突時出現了一些錯誤,我想回滾合併。另外,我想在將錯誤修復程序再次合併爲主程序之前,將另外一項更改添加到錯誤修復程序的一部分中。根據Linus Torvalds在此鏈接中給出的指導 - 「https://raw.githubusercontent.com/git/git/master/Documentation/howto/revert-a-faulty-merge.txt」,我恢復了合併abcdef056fg的恢復。例如, 我簽出master,執行「revert -m 1 abcdef056fg」,這會給我一個新的提交。我再次提交提交以恢復還原。復歸合併的復歸給我下面的Demo.txt:

AAAAAA
BBBBBB
XXXXXX
YYYYYY

我然後結帳開發和添加新的文件Demo2.txt將其與下面的行;

PPPPPP

我現在結賬主,並再次合併開發。新文件Demo2.txt被正確地合併到master中。但我沒有再次解決Demo.txt的合併衝突的選項。假設我想讓合併衝突在Demo中再次出現。TXT,這樣我可以將其更改爲以下內容:

AAAAAA
BBBBBB
YYYYYY
XXXXXX

代替

AAAAAA
BBBBBB
XXXXXX
YYYYYY

我該怎麼做。我不想直接對我的主人進行更改,因爲我保持主分支清潔,不要對其進行任何開發。所有的開發工作都在開發分支完成,並且最終被測試併合併到主開發環境中。這也是一個有着單一衝突的人爲的例子。任何這樣的合併可能會有幾個已經解決和承諾的衝突,我不想修復主人中的所有衝突。那我該怎麼做呢?

+1

[如何解決Git中的合併衝突?](https://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git) – kRiZ

回答

0

我找到了這個問題的答案。答案在於,有一個明顯的錯誤,其中進行了上述合併。我提到我的意圖是保持主分支始終清潔,沒有發展,但在第一次合併之前,我在master中添加了第三行XXXXXX到Demo.txt。這是一個矛盾。現在已增加XXXXXX,我應該先合併掌握到開發合併開發前回master.Doing事先將給予在Demo.txt合併衝突這本來按規定解析爲如下:

AAAAAA
BBBBBB
XXXXXX
YYYYYY

如果我再合併到主這本來是一個與Demo.txt向前伸直合併在主其餘爲:

AAAAAA
BBBBBB
XXXXXX
YYYYYY

現在恢復的復歸於主會保持Demo.txt同上。 現在,如果我檢查了開發用於錯誤修正(除了添加Demo2.txt)和固定Demo.txt如下:

AAAAAA
BBBBBB
YYYYYY
XXXXXX

和簽出主再次合併到開發高手,GIT中會解決Demo.txt在主用下面四行沒有給合併衝突:

AAAAAA
BBBBBB
YYYYYY
XXXXXX

這解決了我們的目的。

不刪除問題,因爲這可能是一些有用的分析。