2013-03-14 117 views
0

我們想要啓動一個開源項目並將Git與我的朋友一起使用。我們知道Git,但我們只是用它在/獨自工作之前分出東西。當兩個開發人員在同一個文件上工作並提交,更新等時會發生什麼

比方說,我們已經創建了一個存儲庫。

情況1:

Both of us downloaded repository to our local computers to started working. 
I've created A.php, with a function named A() in it. Committed. 
My friend created B.php, with a function named B() in it. Committed. 

Q1:不更新我們的本地資源庫,但github上存儲的更新。我們如何在不重新下載整個回購的情況下同步它?問題12:開發人員更新其本地存儲庫的頻率如何?我可能會在20:00更新它,但20:05可能會有不同的提交。有更新本地回購的實時解決方案嗎?在這種情況下,就像Dropbox一樣,您可以進行更改並自動將其同步。

情況2

Me and my friend both started working on A.php. The file currently has function A(). 
I made a function called function B(), committed. 
My friend also created a function called B() too. Committed. 

Q3:什麼事情發生?第一個提交者是否正常提交,第二個提交者會得到類似「文件已更改,請重新同步文件並在之後提交」的錯誤?

回答

2

問題1:您使用抓取或拉取從原始回購獲取最新更改。第二季度:每次他們必須這樣做,要麼是因爲他們想看到原始回購中發生了什麼,要麼因爲git強迫他們這樣做。事實上,如果你嘗試推送到遠程原始倉庫,並且你的本地副本在它後面,git會強制你先更新你的本地副本,合併你的更改並重新綁定,然後再次推送。

問題3:是的,第二次推送將被拒絕。開發人員將不得不提取,合併或重新綁定,從而解決潛在的衝突,然後推動。

我推薦讀Pro Git,這既好又免費。

+0

麗莎你打算接受任何你的問題的答案嗎? – AlienWebguy 2013-03-15 17:16:54

+0

@AlienWebguy我不在一段時間。沒有選擇答案,我不會留下任何問題。謝謝你提醒我。 – 2013-03-20 02:34:12

0

A1。你爲什麼需要這個?您可以執行git pull將存儲庫的更改拖到本地。哪裏沒有其他的方式來接收數據,只能取得整個變化

A2。真的,你可以做到這一點,因爲你需要。如果您不需要其他功能,則可能不會更新一段時間。如果你需要它 - 拉它。

我總是在每個實現的功能後檢查,因爲許多開發人員在類似的文件上工作。我所做的更少的更改,更容易解決衝突。

A3。 Git不合並它合併源文件的函數。如果在文件開始時添加了A(),另一個在最後,所有東西都會成功合併,並且會有兩個A()。

你應該合併或以推送到遠程,在那裏你HEAD

0

在響應您的要求爲導向,將回答您的問題變基,我有幾個建議。我是git的新手,但我一直在esper.net上的#git IRC中閒逛,吸收信息。以下是我發現我認爲最有幫助的教程/指南。

  • Ry's Git Tutorial到目前爲止我的最愛。非常清晰和簡單的教程,指導你輕輕通過Git的每個方面。
  • Intro to Git不是最流暢的教程,但它有一個很棒的「備忘單」和許多有用的鏈接在底部。
  • try.github.com這是github的入門教程。正如你已經在本地使用它,這個鏈接會更好地幫助初學者。
  • gitolite.com/master-toc.html一個人關於使用git的廣泛和相當密集的註釋。

希望這些鏈接有幫助!我相信你所有的問題都可以通過這些教程來解答。

相關問題