10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

git rebaseの使い方

Last updated at Posted at 2020-10-18

git rebaseとは

Git には、ブランチを統合するための方法がmergeとrebaseの2つあります。rebaseは、作業が完了したブランチを分岐元のブランチにくっつける時に使う機能です。mergeとの違いも含めて、rebaseについて解説していきます。

リベースを使うと何がいい?

ずばり、コミット履歴が綺麗になることです!!
より具体的には、

  • コミット履歴が一直線になってわかりやすくなる
  • 複数のコミットを一つに統合できる

などといったメリットがあります。

リベースはコミットが一直線になる

今、branchAとbranchBという2つのブランチがあるとします。
スクリーンショット 2020-10-18 22.17.28.png

マージの場合

まずはmergeを使って、branchBへbranchAを取り込む場合を見ておきましょう。


git checkout branchB
git merge branchA

image.png

マージだとコミット履歴が枝分かれした後、合流するといった形になり、一直線にはなりません。

リベースの場合

では、branchBをbranchAにリベースしてみます。

git checkout branchB
git rebase branchA

image.png

同じ内容の別コミットC'、D'が指定したブランチの先から作られることで、一直線になります。

リベースは複数のコミットを1つのコミットにまとめられる

今、4つのコミットABCDを持つbranchがあるとします。
これら4つのコミットはそれぞれが微修正であるため、ひとまとめにしたいです。
そんなときは、rebaseの「-i」オプションを利用するといいです。
image.png

git checkout branch
git rebase -i startのcommitID(or commit名)

image.png
「新規コミットE」として、指定した複数のコミットをまとめられました。

リベースの注意点

綺麗で見やすいコミット履歴を作成するのに、とっても役立つリベースですが、注意点もございます。
それは、rebaseコマンドは処理を作り直してしまうため、既存のコミットへ影響を与えてしまうことです。
安易に使用すると、誰かのコミットを勝手に作り直すことになり、チームに混乱を招くことに繋がります。
pushして誰かの目に触れた処理や、他の人の手の入っている箇所では、rebaseでなくmergeを使用するようにしましょう。
そして、誰にも影響を与えないローカルの開発内容のみ、rebaseを使用するようにするといいと思います。

10
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?