# rebaseでのbranchの統合

branchの統合の方法として、**rebase**という方法もあります。

rebaseとは下図の1つ目のように、`main`、`feature1`にてそれぞれcommitを積んでいた場合に、feature1を統合する際に、下図の2つ目のように、`main`の最新のcommitにfeature1で積んだcommitがぶら下がるような形になります。

この時、ぶら下がったfeature1のcommitは、元々のcommitと比較すると**変更分以外のIDや作成日時は全く**別物になります。（下図でいうと、Cと\*C、Dと\*Dは別物）

<figure><img src="https://1869761657-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcUBbYqol4PMzZJggiMqV%2Fuploads%2FaXOgIYvcGrxzMUOcVl6H%2F%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202023-11-27%2015.12.44.png?alt=media&#x26;token=1c3ad9dc-7d2a-4d19-a896-ba0303806b87" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1869761657-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcUBbYqol4PMzZJggiMqV%2Fuploads%2Fc7Xp9BgJ9n38fVc2bSAv%2F%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202023-11-27%2015.39.34.png?alt=media&#x26;token=7959b384-8bce-4be8-8d4e-17ff0aa1d765" alt=""><figcaption></figcaption></figure>

rebaseは、branchでの作業分をまとまって綺麗に並べることができますが、commitを作り替えてしまうので、共同開発で同じbranchにて作業をしている場合は、branchの不整合が起きてしまうので、そういった場合は使用しない方が良いので、自分のみ対象のbranchで作業している場合は、rebaseするのが良いかと思います。
