git merge と比べたときの git rebase の特徴は?
正答
- 2 つの親を持つマージコミットを作って合流させる
- 相手の変更を取り込まず、自分の変更だけを残す
- コミットの内容もハッシュも変えずに履歴をつなぐ
- 自分のコミットを相手の先端に付け替え、履歴を一直線にする
解説
rebase は自分のブランチのコミットを相手ブランチの先端の後ろに一つずつ適用し直す操作で、マージコミットを作らずに履歴が一直線になる。コミットは作り直されるのでハッシュは変わる。マージコミットを作って合流させるのは merge の特徴。rebase でも相手の変更は取り込まれる(土台が相手の先端に変わる)。ハッシュが変わるため、すでに push したブランチを rebase すると他の人と履歴が食い違う。
参考: git-scm.com
この問題を含む Git のテストを制限時間つきで解く
Gitクイズへ