git
すでにプッシュされたブランチをリベースしようとした場合に警告を表示する方法はありますか? (つまり、「履歴を書き換える」可能性が高い場合。)
(場合によってgit
は、履歴を書き換えているかどうかがわからないこともありますが、多くの場合 (通常は?) この情報が含まれています。)
そのような状況では、 git のpre-rebase
フックを使用して警告またはエラーを生成できます。(さまざまなgithooks
ドキュメントはこちらにあります。)サンプルpre-rebase
フックは、( http://git-scm.com/book/en/Customizing-Git-Git-Hooksが指摘しているように)あなたが望むものと非常によく似た何かを行いますブランチ名next
を、公開されたブランチの名前に変更する必要があります。
公開履歴を書き直した場合、その書き直されたブランチをプッシュしようとしても失敗することを指摘する価値があるでしょう (上記のコメントでpmrが言及しているように)。この問題を回避するためにエラーが発生します。
さらに、通常は安全に実行できることを知っておく必要があります。
git rebase <upstream-remote-tracking-branch>
たとえば、master
ブランチで作業していて、その上流のリモート追跡ブランチがorigin/master
である場合:
git rebase origin/master
... に含まれていないorigin/master
コミットの再適用のみを考慮しmaster
、にプッシュするorigin
ときと からフェッチするときに、そのリモート追跡ブランチが更新されますorigin
。(上記で「通常」と言っている理由は、複数のリモートを使用している場合、または通常とは異なる方法でリモート追跡ブランチをセットアップした場合、これがより複雑になるためです。)