1. ホーム
  2. git

[解決済み] git rebase --dry-run のような、事前にコンフリクトを通知してくれるようなものはないですか?

2023-04-18 04:02:36

質問

リベースをスクリプトで行おうとしていますが、リベースの結果、競合が発生したかどうかによって、スクリプトが異なる経路を取ります。

リベースを実行する前に、リベースが競合を引き起こすかどうかを判断する方法はありますか?

どのように解決するのですか?

執筆時点では(Git v2.6.1 v2.10.0) では git rebase コマンドでは --dry-run オプションはありません。実際にリベースを試みる前に、競合に遭遇するかどうかを知る方法はありません。

しかし、もしあなたが git rebase を実行して競合にぶつかると、プロセスは停止し、0 以外のステータスで終了します。できることは、リベース操作の終了ステータスをチェックし、それが非ゼロである場合、実行された git rebase --abort を実行してリベースをキャンセルすることです。

git rebase ... || git rebase --abort

また、リベースは成功したが、元に戻したいと思った場合は、次のように実行します。

git reset --hard ORIG_HEAD