GitHub 冲突解决

16

我是GitHub的新手,开始使用GITHUB for WINDOWS选择私有仓库并与我的同事共享。现在我们遇到了一个问题,不确定如何解决。我们尝试过Google,但没有用。

我和一位同事同时编辑了同一个文件,他先提交了。我想知道他所做的更改,并且希望将他的更改与我的本地文件合并,最终提交我的版本。在GitHub for windows上,是否可以实现这一点?我之前用Tortoise SVN做过相同的操作。

我打开了shell命令提示符,尝试了一些类似于:

  $ git diff

但它只显示差异,没有建议我将本地版本与暂存版本合并。

2个回答

19
如果你按下 sync 按钮,你将会拉取你的朋友所做的并且推送到网上的更改。如果更改没有干净地合并,你将会被提示出现了冲突。这将在你的文件中添加冲突行,你需要去解决它们。之后,你只需要提交这些更改即可。
冲突的行应该会出现在 Github for Windows 的界面中(虽然我不是 100% 确定,但我实际上更喜欢通过命令行来解决冲突)。
通过命令行,你将需要输入以下命令:
git pull
# If merge conflict, you'll be prompt to resolve them, git will list conflicted files
# Open those files in you editor and resolve conflicts. Line will be marked in the files.
# When all is resolved :
git add -A
git commit
# No need to enter a message, git will automatically fill the message with
# merge conflict specific information
git push

在您的文件中,冲突标记将会看起来像这样:

<<<<<<<<<<< [sha-1 of the commit]
function() {
==================
function( hey ) {
HEAD>>>>>>>>>>>>>

3
针对这种情况,我建议使用 git add -u 而不是 git add -A(或者更好地,使用 git commit -a)。仅有一个感兴趣的文件已经存在于版本库中。 - Andy
2
你是我的英雄。为什么我在网上找不到这个! - ClickerMonkey

1
在我的情况下,事实证明我在尝试同步下一个提交之前忽略了同步先前的提交。
无需解决冲突。
我还发现有趣的是所有不同之处块。
<<<<<<<<<<<<<<<<<...
...
======================
...
HEAD>>>>>>>>>>>>>>

实际上这些冲突的代码已经被放置在你的源代码中。只需在文本编辑器中打开相应的文件,选择保留或删除需要的分支。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接