5

コミットを元に戻す必要がありますが、競合がない場合に限ります。のようなものですgit revert --only-if-no-conflictsが、そのようなオプションはなく、ありません--dry-run(--no-commit回避する必要がある作業コピーにはまだ影響します)。

この場合、復元はスクリプトから実行されるため、競合があったかどうかを手動で調べることはできません。スクリプトから何とかそれを行うことができますが、それに飛び込む前に、競合なしで成功する場合にのみ Git に元に戻すための巧妙な方法はありませんか?

4

2 に答える 2

3

スクリプトは次のようにする必要があります。

分岐、復帰、観察。

作業ツリーに手を加えたくない場合は、 で新しいディレクトリを作成できgit-new-workdirます/tmp

次に、あなたは明らかに、

new branch $ git revert --no-edit ce6982e || \
                 { export REVERT_FAILED=yes; git revert --abort; }

元のブランチに戻り、観測結果に基づいて行動します。つまり、ステージング ブランチでの復帰が成功した場合は復帰します。

于 2014-02-20T12:09:56.307 に答える