【问题标题】:How to force merge using "theirs" strategy when told there are unmerged files当被告知有未合并的文件时如何使用“他们的”策略强制合并
【发布时间】:2019-11-29 11:23:12
【问题描述】:

git mergetheirs 一起运行时:

$git merge --strategy-option theirs

合并文件没有帮助:

error: Merging is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

那么这个命令可以帮助我吗?我是否需要手动合并所有(许多..)文件?

我确实查看了Git merge strategy 'theirs' is not resolving modify/delete conflict,但没有一个答案提供了这样做的方法。

更新我硬着头皮在我的活动目录上运行了bfg 工具,因为我无法让合并/解析在克隆中工作。这似乎正在向前推进:这里是 IJ

【问题讨论】:

  • 所以你刚开始说合并,然后当它因冲突而停止时你试图说git merge --strategy-option theirs,真的是这样吗?
  • 我一直在使用bfg 删除大文件,显然它开始了merge ..? - 所以我猜这个答案间接是肯定的。
  • 是的,我不知道 bfg,但您不能在合并过程中进行合并。

标签: git


【解决方案1】:

这个错误信息:

error: Merging is not possible because you have unmerged files

表示您已经开始合并。在完成或终止当前合并之前,您无法开始另一个合并。这就是它的全部内容。回想一下当您开始一些较早的合并时,您还没有完成。合并重要吗?你现在应该完成吗?如果是这样,现在完成它,然后再开始另一个。

您的另一个选择是使用:

git merge --abort

告诉 Git:“哦,嘿,还记得我昨天 / 上周 / 去年 / 什么时候开始的另一个合并吗?我还没有完成的那个?停下来,现在把它移开,然后回到上周或去年或任何时候的一切。”

警告:停止并回到去年的状态可能会丢失任何未保存的更改。

【讨论】:

  • 说得通——谢谢。现在正在寻找完成先前的合并。如何提出/编辑冲突?调用git merge 显然不起作用;)
  • git status 应该告诉你大部分发生了什么,除非你的 Git 非常古老(CentOS 附带非常古老的 Git 1.7 或 1.8)。有些人发誓 git mergetool(连同 vimdiff 或 k-something-or-other 或某些第三方合并工具之一)完成冲突合并,但我倾向于发誓 at 它代替. :-) 我更喜欢将merge.conflictStyle 设置为diff3,这会将更多信息放入每个冲突的工作树文件中,然后git status 告诉我哪些工作树文件仍未合并。
  • 从那里,我只是启动了我的编辑器(这些天我使用 vim;有一段时间,在 Git 之前,当我使用 Emacs 时,早在 1980 年代)冲突文件。请注意,如果您有一个部分编辑的冲突文件,但随后想放弃并恢复到冲突状态,您可以使用git checkout -m 来执行此操作。如果您更改 merge.conflictStyle 设置,这将特别有用,因为重新创建的冲突工作树文件使用新样式(或带有 git checkout 的选定样式)。
  • 谢谢。我将bfg-tool 应用于我的活动目录。这很冒险,但我不能让克隆人和 IJ 一起玩。我正在使用 IJ 的屏幕截图更新 OP,现在正在帮助。
猜你喜欢
  • 2012-12-15
  • 2019-05-03
  • 2012-12-22
  • 1970-01-01
  • 2018-01-06
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多