2013-04-01 82 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和冲突解决)。