从GitHub拉取而不覆盖某些文件

时间:2017-04-17 00:26:12

标签: git github

我正在和我的合作伙伴一起开发应用程序,我们正在使用github同步我们的项目,但我们之前都没有使用过github,而且我遇到了问题。我和我的搭档从最后一次推送中同步,但我们分别处理了不同的事情,现在我们需要弄清楚如何合并我们的两个版本。所以,看起来有点像这样:

    ---- B ----|
A --|          |--- D
    ---- C ----|

状态A是指github存储库具有我们共同的代码。

然后,我们俩拉动并处理代码的不同部分,创建两个不同的状态B和C.

现在,我们需要将我们的两个状态组合成D,它包含我们已经处理过的两个部分 状态B被推,这不是我所拥有的,但我确实知道B之前我需要在C上推送的所有内容。

感谢任何帮助。

1 个答案:

答案 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

如果您正在进行相同的开发工作(同样的分支)并且需要使您的常见工作保持最新,则此工作流程非常有用。