2012-04-07 177 views
0

我是git的新手,並且想要了解如何在使用git的項目上與幾位朋友進行協作。我的問題是試圖瞭解如何「更新到HEAD(像在SVN中)」在git中。我理解git有點不同,我會很感激任何幫助。Git的版本更新到HEAD

所以考慮這種情況。有人A和人B.人A通過增加1來改變文件。他然後執行:

  1. 提交的關於他自己的分支
  2. 切換到主
  3. 拉原點主
  4. 混帳合併personAbranch
  5. 混帳推起源主

所以,到目前爲止, ,這是可行的,就像在GitHub上一樣,存儲庫已經更新了Person A的更改。

現在,假設在這整個時間裏,人B也一直在對自己進行改變。他也是,另外增加1個。 B應該做什麼「更新到HEAD」,以便他也可以進行修改。什麼人B已經嘗試過...

  1. 承諾自己的變化到他自己的分支。
  2. 開關掌握
  3. 的git拉出身主
  4. 的git合併大師伊恩。

在第四行,他總是得到一個衝突的投訴。爲什麼?!

任何幫助將不勝感激。

回答

1

如果git在抱怨衝突,這意味着人A和人B(他的名字可能是Ian?)已經修改了相同的文件和更改,好吧,衝突。無論是該文件是一個二進制文件,爲此git永遠不能解析兩個不同的修改,或者它是一個文本文件,並且這兩個修改觸及相同的一組行。

您將不得不解決衝突。您可以使用git mergetool來解決這個問題。

(衝突是不是唯一的飯桶。他們可以使用Subversion發生,也爲同一類的原因。)

+0

感謝您的幫助肯Thomases。我想,當Ian和我測試它時,我會有一個會說「測試文件」的文件。對於我來說,我會添加一條說「Alex's Addition」的附加行。 Ian會在他的電腦上同時添加一行說:「伊恩的補充。」我希望git也可以合併,但是我猜想因爲它們在同一行,所以它不起作用。但是,如果Ian可能會在文件的後面放置更多行(例如,按Enter鍵一次),它會不會與我的行衝突? git能夠合併兩者嗎? – user941401 2012-04-07 08:49:47

+0

不可以。例如,怎麼可能知道你的線路是在原始線路之後還是在Ian的添加之後馬上去? – 2012-04-07 09:23:05