2016-12-02 54 views
1

我不擅長git,並且這些日子在使用git時遇到了一些問題。當多個用戶在git上修改相同的源代碼

有如下所示三個文件:

a.txt 
b.txt 
c.txt 

當三個用戶嘗試修改其中的每個文件(人Aa.txt人員Bb.txt人物Cc.txt) ,沒有問題。

但是,當這些人同時嘗試修改遠程服務器上的最新文件a.txt時,可能會出現一些問題。

讓我舉個例子。

人A推着改性a.txt到遠程服務器,而其他人仍然正在修改前(前人A推)a.txt

在這種情況下,人B,Ca.txt與遠程服務器的新a.txt不一致。

如何解決這種情況?以及人們在修改相同文件時的工作方式(在上述情況下,a.txt)(我的意思是工作流程)

+0

http://stackoverflow.com/questions/161813/how-to-show-to-resolve-merge-conflicts-in-git – McNets

+0

你[合併](http://stackoverflow.com/questions/161813/how-to-解決合併衝突在git)文件。如果兩個用戶修改同一個文件的不同部分,合併可以通過git自動完成,如果沒有,你必須手動爲每個衝突(段落,行,單詞......)選擇一個你想要的保持。 – Holt

回答

2

這就是(理論上)容易。人A將他的修改版本推送到遠程。現在,人員B和C具有不一致的a.txt版本。如果他們試圖推送他們的版本,git不會允許這個(提交是可能的,因爲提交不會到達遠程服務器)。

在他們推動它們之前,他們必須從遠程服務器提取更改。 Git會嘗試將它們與本地更改合併。如果git失敗(因爲它們改變了相同的行),人員B/C需要手動解決衝突。然後他們可以再次提交併推送到遠程服務器。那麼只有一個人可以做到這一點。最後一個必須再次這樣做(因爲與本地版本相比,遠程版本再次發生了變化)。

這就是理論。大多數情況下,這很有效。

相關問題