在git中使用两个存储库

时间:2013-04-01 23:28:20

标签: git bitbucket

我和我的朋友正在处理一些小项目,我们遇到了Git的问题。 我们有一个主存储库,由我创建。我的朋友把它分叉并克隆到他当地的机器上。

现在当我进行一些更改时,我通过执行以下操作将提交推送到我的存储库:

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

我正在通过git pull命令从存储库进行更改。

我的朋友正在通过执行命令来提交更改:

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

他正在通过git pull upstream master命令从repo进行更改。

在我们这样做之后,我们遇到了同步我们的存储库的问题。当我的朋友创建Pull Request时,它表示存在冲突......每次推送提交时都会发生冲突。

如果让我的朋友做一些更改并创建Pull Request,git会自动添加他的代码行而不会与我的仓库产生任何冲突?

1 个答案:

答案 0 :(得分:3)

好吧,如果你改变相同的代码行,显然你会有冲突 - 这是正常的,这就是你想要发生的事情。你不会合并你没有测试过的代码。

因此,在执行提取请求之前,任何发送请求的人都应该pull(基本上:pull = fetch + merge)来自您的存储库的最新更改,解决冲突并确保其版本是最新的。

然后,如果在接受PR之前将新提交推送到您的存储库,则PR将过期并且无法自动合并。所以,你可以在你自己的工作场所拉你的朋友分支并解决冲突 - 或者你的朋友pull你的主分支再次等等。

当与某人密切合作时,我总是愿意向我的同事提供书面许可;所以他可以随心所欲地推动。

唯一真正重要的是,在合并任何分支之前,分支必须是最新的(pull并且冲突已解决)。