我正在和我的合作伙伴一起开发应用程序,我们正在使用github同步我们的项目,但我们之前都没有使用过github,而且我遇到了问题。我和我的搭档从最后一次推送中同步,但我们分别处理了不同的事情,现在我们需要弄清楚如何合并我们的两个版本。所以,看起来有点像这样:
---- B ----|
A --| |--- D
---- C ----|
状态A是指github存储库具有我们共同的代码。
然后,我们俩拉动并处理代码的不同部分,创建两个不同的状态B和C.
现在,我们需要将我们的两个状态组合成D,它包含我们已经处理过的两个部分 状态B被推,这不是我所拥有的,但我确实知道B之前我需要在C上推送的所有内容。
感谢任何帮助。
答案 0 :(得分:0)
你们中的一个人可以毫无问题地推进。
另一个会有一条错误消息邀请他/她先拉。
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
我建议:
git pull --rebase
git push
这将在更新上游主分支上重播您的本地提交。
实际上,自git 2.9 or more以来,您可以设置(一次):
git config --global pull.rebase true
git config --global rebase.autoStash true
然后,您可以使用简单的经典git up
替换git pull
。
如果您正在进行相同的开发工作(同样的分支)并且需要使您的常见工作保持最新,则此工作流程非常有用。