2

私は非常に大規模なリベースの最中であり、競合を解決しながら使用していますgit rebase --continue.

複数のファイルの競合を解決しようとして途中で、私はそれを少し混乱させたことに気づきました。競合の解決を開始する前に、リベースのこの段階に戻る簡単な方法はありますか?

git rebase --abort明らかに、他の競合の修正に費やしたすべての時間を無駄にしたくありません。

次のスタック オーバーフローの質問を見つけましたが、より明確な手順を実行できます。

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 に答える