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 冲突解决的主要内容,如果未能解决你的问题,请参考以下文章