目次
Gitのrebaseとmergeの違いのまとめ
| 目的 | 結果 | 安全性 | |
|---|---|---|---|
| git rebase | 履歴を付け替える | 履歴は直線になる コミットIDは変わる |
履歴改変あり |
| git merge | ブランチを合流させる | 履歴は分岐が残る コミットIDは変わらない |
高い |
rebaseの場合
git の rebase(リベース) とは、
自分のブランチの変更履歴を、別のブランチの最新の先頭に付け替える操作 です。
rebaseを行う前
main: A---B---C
\
feature: D---E
git rebase mainをすると
main: A---B---C
\
feature: D'---E'
D, E の内容は同じ
ただし、コミットIDは作り直される(D' E')
履歴が 一直線でキレイ になる
分岐した場所を、より新しい位置に引っ越しします。
rebaseを使う場面
・(重要)自分だけの作業ブランチで使用する→履歴が書き換わってしまうため
・PR前に履歴を整理したい(コミットをまとめる、メッセージ修正、不要なコミット削除)
・1機能=1履歴にしたい
mergeの場合
main: A---B---C------M
\ /
feature: D---E
featureの変更をそのまま合流
M = マージコミット
いつ・どこで合流したかが分かる
mergeを使う場面
・(重要)main / developなど共有ブランチで使用する→変更履歴が残るため
・本番リリース履歴を残したい
・安全第一
関連の記事
Git checkoutとは(switch/restoreとの違い)
GitHub Pull RequestsとIssuesの違い(+Actionsとは)
