【问题标题】:Github - how to solve conflictsGithub - 如何解决冲突
【发布时间】:2012-01-09 05:11:37
【问题描述】:

我和我的朋友正在尝试处理一个 iPhone 项目,但在使用 github 进行版本冲突管理时遇到了问题。

示例:我们俩都在使用 xCode 4.2(和 github mac 客户端)编写某行代码

int majorVersion = 0;

1) 他将代码更改为int majorVersion = 999; 提交更改;同步 - 没问题,最终会在 github 中

2) 同时我把代码改成int majorVersion = 666; 然后:

  • 我提交更改
  • 冲突 - 我通过选择代码行 (int majorVersion = 666;) 来选择我的特定版本
  • 在 xCode 中,我删除了有趣的 int majorVersion = 666;)
  • 提交更改
  • 最后:我尝试发布分支但收到以下错误:

错误:无法推送到不合格的目的地:HEAD 目的地 refspec 既不匹配遥控器上的现有 ref 也不以 refs/,我们无法根据源 ref 猜测前缀。 错误:未能将一些参考推送到 'https://github.com/XXX/XXX.git'

我们做错了什么?主要问题是我删除了 xCode 中有趣的

【问题讨论】:

  • 使用命令行git程序。 git status 说什么?您是否在尝试推送之前提交了合并冲突解决方案?
  • @Daenyth:是的,我尝试在尝试推送之前提交我的合并冲突解决方案。提交不是问题。推送提示错误。 git status 会将其记录到控制台:# 目前不在任何分支上。没有什么可提交的(工作目录干净)
  • 部分问题在于您使用的是 GitHub Mac 客户端。它看起来不错,但并不能很好地显示分支结构。尝试使用 SourceTree 或 GitX 来更好地可视化您的存储库。

标签: version-control github xcode4.2 conflict


【解决方案1】:

目前不在任何分支上。无需提交(工作目录干净)
(见this example

这意味着您在DETACHED HEAD 中,并且在“Not currently on any branch + git commit + checkout when not in any branch. Did i loose my changes?”中提到了解决方案(git log、git reflog...)。

问题不在于并发修改本身,而在于您如何首先在 XCode4 中签出代码:任何签出标签或 SHA1 都会导致头部分离的情况。

另请参阅“Git Checkout reverted code to older commit, how to revert back?”中提出的决议。

【讨论】:

  • 感谢您提出解决问题的建议。但是,我不明白我应该如何处理这种情况。而不是删除 +
  • 如果好则不要删除部分(这是您解决冲突的方式)。但在开始进行任何修改(无论是否冲突)之前,您首先需要确保您已签出一个分支,而不是 SHA1 或标签。否则你在尝试提交时会遇到问题。
  • 非常感谢。我们将再试一次,有冲突的人会确保在提交之前检查分支。
猜你喜欢
  • 2012-10-24
  • 2015-05-07
  • 2016-03-04
  • 1970-01-01
  • 1970-01-01
  • 2016-02-22
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多