2013-04-01 111 views
3

我和我的朋友與一些小項目的工作,我們必須使用Git的問題。 我們有一個由我創建的主要存儲庫。我的朋友將它分叉並將其克隆到本地機器上。在Git中有兩個倉庫工作

現在,當我做出一些改變我把承諾我的倉庫做:

git add -u 
git commit -m "message" 
git push origin master 

我被git pull命令正從倉庫的變化。

我的朋友是通過執行命令commiting變化:

git add -u 
git commit -m "message" 
git push origin master 

,他被git pull upstream master命令正從回購的變化。

我們做到這一點後,我們有我們的同步問題庫。當我的朋友創建Pull Request時,表示存在衝突......每次我們推送提交時都會發生衝突。

如何使它工作,如果我的朋友做一些更改,並創建pull請求,git會自動添加他行代碼沒有任何衝突,我的回購?

+1

什麼使你不會將更改推送到同一個存儲庫而不是創建分支? –

回答

3

好吧,如果你改變的代碼在同一行,顯然你就會有衝突 - 這是正常的,這就是要發生什麼。你不會合並你沒有測試過的代碼。

所以,做一個拉請求之前,任何人發送它應該pull(基本上是:pull = fetch + merge)從你的資料庫中最新的變化,化解矛盾,確保其版本是最新的。

然後,如果你接受PR之前推新提交給你的資料庫,公關將成爲過時的,不能自動合併。所以,你可以在你自己的工作場所拉你的朋友分支,並解決衝突 - 或者你有你的朋友pull再次等你的主分支等。

當與人緊密合作時,我總是喜歡給予寫作權限我的同事;所以他可以按自己的意願推。

唯一真正重要的是要理解此處是另一個合併任何分支之前,分支必須是最新的(pull和衝突解決)。