我和我的朋友正在处理一些小项目,我们遇到了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会自动添加他的代码行而不会与我的仓库产生任何冲突?
答案 0 :(得分:3)
好吧,如果你改变相同的代码行,显然你会有冲突 - 这是正常的,这就是你想要发生的事情。你不会合并你没有测试过的代码。
因此,在执行提取请求之前,任何发送请求的人都应该pull
(基本上:pull
= fetch
+ merge
)来自您的存储库的最新更改,解决冲突并确保其版本是最新的。
然后,如果在接受PR之前将新提交推送到您的存储库,则PR将过期并且无法自动合并。所以,你可以在你自己的工作场所拉你的朋友分支并解决冲突 - 或者你的朋友pull
你的主分支再次等等。
当与某人密切合作时,我总是愿意向我的同事提供书面许可;所以他可以随心所欲地推动。
唯一真正重要的是,在合并任何分支之前,分支必须是最新的(pull
并且冲突已解决)。