【问题标题】:Error when trying to merge git branches in Xcode 10尝试在 Xcode 10 中合并 git 分支时出错
【发布时间】:2018-12-13 21:24:36
【问题描述】:

我正在尝试将我的主分支合并到我的多个打印机分支中,但它一直卡在 Breakpoints_v2.xcbkptlist 和 .DS_Store 文件上。我不得不退回到我的主分支来修复生产中的错误。多打印机分支是我正在为下一次功能更新而开发的分支。我想将主分支中的错误修复合并到我的多打印机分支中,以便将这些修复与新代码一起纳入下一个功能版本。

任何人都知道我可以如何修复此错误以便合并通过?我正在使用最新版本的 xCode 10.1 和 MacOS 10.14.2

我相信一切都是同步的:

Robs-Mac-Pro:SA rhb$ git status

在分支multiplePrinters 你的分支是最新的'origin/multiplePrinters'。

没什么可提交的,工作树干净

Robs-Mac-Pro:SA rhb$ git status 在分支主 你的分支是最新的'origin/master'。

没什么可提交的,工作树干净

Robs-Mac-Pro:SA rhb$

但是,一旦我尝试合并这些文件,就会重新出现图片中显示的错误。我过不去!

抱歉,我是 GIT 新手。

【问题讨论】:

  • 我已经尝试了这些解决方案,但仍然无法合并。从我的终端:我相信一切都在同步:Robs-Mac-Pro:SA rhb$ git status On branch multiplePrinters 你的分支是最新的'origin/multiplePrinters'。没什么可提交的,工作树清理 Robs-Mac-Pro:SA rhb$ git status 在分支 master 你的分支是最新的'origin/master'。没有什么可提交的,工作树清理 Robs-Mac-Pro:SA rhb$ 但是一旦我尝试合并这些文件,就会重新出现图片中显示的错误。我过不去!
  • 也许 Xcode 只是在这一点上感到困惑。出于这个原因,我从不在这些情况下使用它。从缓存中删除麻烦的文件后,您是否在两个分支上都进行了新的提交?如果是这样,您现在可以从命令行进行合并吗?
  • 不,我没有。我是 git 新手,主要在 xcode 中工作。我相信查看网络上的 git,这些文件只是在 master 分支中丢失,但存在于多个打印机分支中,这样它就不会合并。我不确定如何同步这两个文件(实际上是四个文件,上面提到的每个文件 2 个)所以 Xcode 会让我合并。
  • 好吧,你需要进入每个跟踪这些文件的分支,从缓存中删除它们,然后提交。如果您不想从命令行执行此操作,请使用 SourceTree。您将无法通过 Xcode 完成。

标签: git github git-merge xcode10


【解决方案1】:

但它一直卡在 Breakpoints_v2.xcbkptlist 和 .DS_Store 文件上。

但这些文件一开始就不应该被 git 跟踪。将它们包含在您的 gitignore 文件中。

【讨论】:

  • 我在我的 gitignore 文件中有它们,但是我在启动项目后添加了它们并且它们一直显示出来。
  • 是的,gitignore 文件不会神奇地阻止已经被跟踪的东西被跟踪。您还需要git rm --cached 这些文件。见stackoverflow.com/questions/1274057/…(我认为我们现在知道的足以称其为那个的副本,以及类似的东西stackoverflow.com/questions/49478/…)。
  • 当我从项目目录中尝试时,我从终端收到了这个:致命:pathspec 'Breakpoints_v2.xcbkptlist' did not match any files
【解决方案2】:

(编辑/免责声明:我认为马特只是.gitignore,现在我重读了你的问题,但即使在这一点上也不确定。你能澄清一下“问题”是否是你不知道的冲突知道如何解决,期望的目标状态是什么?)

你没有给出太多细节,但核心原则是

# get on your feature branch, I'll assume it to be named as follows
git checkout multiplePrinters

# now we get the latest changes from master
# ( reminder: pull = fetch + merge )
# git pull master

此时,可能会出现冲突并且它不是错误或某种危险。 Git 要求您选择如何合并冲突的版本。

当然,在这里查看doc 或一些questions 可能会有用。


(在您的评论后编辑)

如果您不想解决这些有问题的文件的冲突,而是按原样使用主版本(但其他分支也一样,这只是一个示例),您可以如图所示开始合并上面,那么

# get your xcbkptlist file from master
git checkout master -- path/to/Breakpoints_v2.xcbkptlist
# repeat for the other files (.DS_Store)
# then add them all and commit to finish the merge
git commit -a -m "Useful message here"

【讨论】:

  • 是的,我按照你的描述做了同样的结果。在我尝试合并之前,有没有办法追溯忽略对这些文件的更改。我将它们添加到我的忽略文件中,但在项目已经开始之后。
  • Xcode 不会让我完成合并,即使在尝试了其他解决方案并检查了显示主打印机和多台打印机都是最新的 git 状态之后。当我尝试解决冲突时,它一直在这两个文件和 Xcode 内部阻塞,我在图片中收到错误,没有解决它的选项 - 比如忽略此文件或更改。
  • @Rob 不幸的是,我对 Xcode 太无知了,我想这会阻止我了解整个情况...... :-/ 我希望我能提供更多帮助,抱歉
猜你喜欢
  • 2010-11-19
  • 2017-06-22
  • 2013-02-28
  • 2013-10-01
  • 2021-01-29
  • 2012-08-09
  • 1970-01-01
  • 2019-09-24
  • 2023-03-06
相关资源
最近更新 更多