GITHUB 冲突解决

Posted

技术标签:

【中文标题】GITHUB 冲突解决【英文标题】:GITHUB Conflict Resolving 【发布时间】:2012-10-24 00:36:48 【问题描述】:

我是 github 的新手,开始使用 GITHUB for WINDOWS 选择的私有存储库并与我的同事共享。

现在我们遇到了一个问题,不知道如何解决。我们尝试了谷歌,但没有用。

我自己和一位同事同时处理同一个文件,他在我之前承诺。我想知道他所做的更改,我想将他的更改与我的本地文件合并,最后想提交我的版本。 GITHUB 是否可以在 Windows 上使用 GITHUB?我以前用 Tortoise SVN 做过同样的事情

我打开 shell 命令提示符并尝试了类似

  $ git diff

但它只显示差异,不建议我将本地版本与分阶段版本合并..

【问题讨论】:

【参考方案1】:

如果您按下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>>>>>>>>>>>>>

【讨论】:

对于这种情况,我建议git add -u 而不是git add -A(或者更好,git commit -a)。只有一个感兴趣的文件似乎已经在存储库中。 你是我的英雄。为什么我在网上的任何地方都找不到这个!【参考方案2】:

就我而言,只是在尝试同步下一个提交之前,我忽略了同步上一个提交。

无需解决冲突。

我还发现有趣的是所有差异块

<<<<<<<<<<<<<<<<<...
...
======================
...
HEAD>>>>>>>>>>>>>>

实际上是放在你的源代码中的。只需在文本编辑器中打开冲突文件并保留/删除所需的分支。

【讨论】:

以上是关于GITHUB 冲突解决的主要内容,如果未能解决你的问题,请参考以下文章

github解决冲突

github上的版本和本地版本冲突的解决方法

github上的版本和本地版本冲突的解决方法

github 在ubuntu 使用--解决冲突,创建分支

git之github解决冲突

Android Studio如何使用Git提交代码到GitHub和OsChina并解决冲突