【问题标题】:Git merge issueGit合并问题
【发布时间】:2012-01-18 02:16:53
【问题描述】:

我使用的是本地存储库(它根本不像本地存储库在我在 Lynda.com 上观看的 Xcode 演示中那样工作)。我可以让它工作的唯一方法是创建我的项目目录的另一个副本,然后将其指向为 Organizer 中的工作目录。好的...没关系,尽管根据我一步一步遵循的演示,它不应该像那样工作。

现在我当前的问题是,当我想检查我的生产分支上的某些内容时,我正在处理另一个有一些未提交更改的分支,我切换了分支,它合并了所有文件!!!说真的……wtf。所以现在我的生产项目完全搞砸了,在我修复合并冲突之前,它不会让我切换回另一个分支。

所以我的问题是:这是常规的 git 行为,还是我的存储库系统有问题?如果这确实是常规行为,您会认为至少会有一个警告对话框告诉您有未提交的更改并且它将合并您的分支。

【问题讨论】:

    标签: xcode git merge


    【解决方案1】:

    Git 通常不允许您使用未提交的更改切换分支。在移动分支之前,您要么必须提交它们,要么将它们藏起来。

    查看 git-stash 以了解其工作原理。

    我从来没有通过 Xcode 使用过 git,所以我感觉它在幕后做了一些奇怪的事情,因为发生这种情况是不正常的。它会抱怨工作树很脏,并告诉您在切换分支之前先进行存储。

    【讨论】:

    • 谢谢——所以我想我只需要记住在切换分支之前先提交所有内容。坦率地说,我认为我在 Xcode 中的 git 实现有些古怪……Lynda 上的那个人不必为本地存储库创建工作副本,而且对他来说似乎工作得很好。
    • 哦,太好了...所以我设法解决了冲突并让我的工作生产分支再次工作,但现在我的主要故事板拒绝提交。太棒了。
    • 所以如果我理解正确的话,你有 repo A,然后你将它克隆到 repo B。然后你确实在 B 工作并试图将它推送到 A?如果是这种情况,则 A 无法检查您正在尝试推送的分支。您要么需要创建一个虚拟分支并在 A 上签出该分支,要么需要将 A 设为裸仓库。
    • 我解决了问题...该文件错误地指示它有未提交的更改。所以我只是添加了一条评论并构建了项目,然后它就可以让我提交了。我的 git 肯定有一些奇怪的地方。
    【解决方案2】:

    我不太了解 Git。我主要使用 Mercurial。所以我不能给你比这个更好的答案了:

    您可能想看看Pro Git 这本书。此外,在开始通过 Xcode 使用 Git 之前,请先在命令行上熟悉 Git。对实际 Git 工具的深入了解将有助于您了解 IDE 接口的工作方式。

    【讨论】:

      猜你喜欢
      • 2015-10-07
      • 2021-04-25
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 2018-10-10
      • 1970-01-01
      相关资源
      最近更新 更多