2

gitすでにプッシュされたブランチをリベースしようとした場合に警告を表示する方法はありますか? (つまり、「履歴を書き換える」可能性が高い場合。)

(場合によってgitは、履歴を書き換えているかどうかがわからないこともありますが、多くの場合 (通常は?) この情報が含まれています。)

4

1 に答える 1

4

そのような状況では、 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。(上記で「通常」と言っている理由は、複数のリモートを使用している場合、または通常とは異なる方法でリモート追跡ブランチをセットアップした場合、これがより複雑になるためです。)

于 2012-11-05T10:50:45.153 に答える