3

我和我的朋友正在处理一些小项目,但我们遇到了 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,git 会自动将他的代码行添加到我的 repo 中而不会发生任何冲突,如何让它工作?

4

1 回答 1

3

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

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

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

不过,当与某人密切合作时,我总是更愿意给我的同事写作许可;所以他可以随心所欲地推动。

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

于 2013-04-02T01:46:09.847 回答