QA@IT

git の rebase を普段から積極的に活用するメリットは?

2691 PV

git を使う場合、

  • リモートから pull するときは --rebase オプションを付けるべき
  • リモートに push するときは rebase してから push すべき

という主張を良く目にするのですが、このメリットが今ひとつ理解出来ません。
前者は pull する際に Non Fast-Forward マージが発生すると、意図せずマージコミットが大量に出来てしまい、共用リポジトリのコミット履歴が汚れるのを避けるため。後者は push されたコミットを共用リポジトリに merge する際に簡単にマージ出来るようにするため(受け取った側は Non Fast-Forward で本体にマージする)。だと理解しています。

しかし個人的には、普段から開発をトピックブランチ上で行うのであれば、

  • まずリモートから pull(fetch + merge)する
  • トピックブランチを merge --squash してからリモートに push する

で良いのではないかと思ってしまいます。pull するときに rebase するとコンフリクトが発生した際の解消も面倒ですし。
もしかすると「ひとつのトピック内に複数のコミットを含めたい」という場合があるのかもしれませんが、トピック単位で作業してるのにコミットを分ける意味ってあるのでしょうか……?

皆さんのご意見を聞かせて頂けると幸いです。

ウォッチ

この質問への回答やコメントをメールでお知らせします。