2

我正处于一个非常大的变基中,在我使用和使用时解决冲突git rebase --continue.

部分尝试解决多个文件的冲突,我意识到我已经把它弄得一团糟。在我开始解决冲突之前,有没有一种简单的方法可以让我回到 rebase 的这个阶段?

显然,我不想使用git rebase --abort和浪费我花在解决其他冲突上的所有时间。

我发现了以下 Stack Overflow 问题,但可以使用一些更清晰的步骤:

如何在 git rebase 期间回滚单个冲突解决方案

特别是,-m旗帜的作用是什么?是path/to/wrong我要变基的分支的名称、我要变基的分支还是对特定提交的引用?

4

1 回答 1

1

要将单个文件重置为未合并版本,请执行以下操作:

git checkout --merge path/to/file

如果您知道当前正在应用的提交的原始版本的提交哈希(如果不知道,请查看 reflog),您可以为该提交中更改的所有文件自动执行该过程:

#!/bin/bash

for file in $(git show --pretty=format: --name-only 812b091)
do
  git checkout --merge "$file"
done

git-checkout手册页:

-m, --merge

[剪辑]

从索引中检出路径时,此选项允许您在指定路径中重新创建冲突的合并。

于 2016-10-20T22:02:07.340 回答