2010-12-01 44 views
2

我想討論的場景是 我有一個合併存儲庫,它是共享存儲庫,開發人員將在其中解決合併衝突問題。在GIT中解決文件衝突的一部分

  1. 單個文件中存在2個或多個合併衝突。
  2. 每個衝突都必須解決不同的用戶。
  3. 每個開發人員都可以進入該存儲庫解決合併衝突。
  4. 讓的說foo.c的有3個合併衝突
  5. 一個用戶在foo.c的解決了一個單一的衝突,並保存在一個圖形化的合併工具

現在GIT承認這是「混帳添加」雖然有在文件的其他部分仍然存在衝突。然後,如果另一個開發人員「git mergetool foo.c」,它不會彈出foo.c的衝突。

是否有解決此問題的圖形工具。 允許多個用戶解析並保存同一文件中的衝突。

回答

0

這種情況並沒有真正意義......

首先,如果有衝突,那麼衝突只存在於一個合併提交,這還不存在! (它仍然在用戶的機器上,可能在索引中,但當然不在其本地樹中)。

其他用戶根本沒有衝突,直到他們進行合併或重新綁定。

假設您確實有三位用戶進行完全相同的合併,無論出於何種原因,因此他們有相同的衝突。

讓我們進一步假設,他們,如你所建議的,每個人都有一個只有他們可以協調的衝突,那麼他們應該在最新版本的代碼中重新工作,並調和過程中的任何衝突。

換句話說,你的情況似乎說明如下:(糾正我,如果我錯了):

  1. 我們有三個開發者,查理,約翰和馬特,誰都是關閉主分支,這是在提交aaaaaaa。
  2. 他們都在一個'不穩定'的分支上工作,這個分支在提交bbbbbbbb時與'主'分離。
  3. 他們全部,在同一時間,決定他們應該單獨合併'不穩定'分支到'主'。
  4. 他們全部,在同一時間,意識到他們有承諾他們不能協調。

理想情況下,在這種情況下應該做什麼,應該由任何知道如何進行合併的開發人員合併「不穩定」。也許他們會選擇一次將幾個提交合並,而不是直接合並這兩個負責人,或者他們可能選擇重新整理所有內容 - 不管怎樣,但只有一個開發人員需要這樣做。

The more frequently this is done, the easier the merge/rebase operation will be. 

其餘的開發人員將能夠使用合併提交。

+0

嗯,這不是什麼想法....要更好地解釋。 我試圖合併2裸倉庫,而不是合併到實際數據存儲庫中的分支。由於沒有工作目錄,因此合併2個裸存儲庫是不可能的,所以我從1裸副本(A)創建了一個名爲merge_A的克隆,並從2裸副本(B)中提取更改,因此合併衝突發生在merge_A中。現在讓我們說foo.c有3條衝突線,3個開發者必須cd到merge_A並解決它。 – 2010-12-01 10:29:19