13,007
回編集
(ページの作成:「== 概要 == mergeとrebaseは共に、異なるブランチの変更を統合するためのコマンドであるが、統合の方針に違いがある。<br> ここで…」) |
(→概要) |
||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
mergeとrebaseは共に、異なるブランチの変更を統合するためのコマンドであるが、統合の方針に違いがある。<br> | mergeとrebaseは共に、異なるブランチの変更を統合するためのコマンドであるが、統合の方針に違いがある。<br> | ||
<br> | |||
ここでは、masterブランチの過去のコミットから派生した機能開発用のtopicブランチの変更を、masterブランチに取り込むという状況で、<br> | ここでは、masterブランチの過去のコミットから派生した機能開発用のtopicブランチの変更を、masterブランチに取り込むという状況で、<br> | ||
2つの方法を比較する。<br> | 2つの方法を比較する。<br> | ||
<br><br> | |||
== merge / rebaseの主な違い == | |||
==== 履歴の形状 ==== | |||
* merge | |||
*: ブランチの履歴がそのまま保持されて、マージコミットによって結合点が作られる。(木構造) | |||
* rebase | |||
*: コミットを付け替えることにより、直線的な履歴になる。 | |||
<br> | |||
==== コミットの同一性 ==== | |||
* merge | |||
*: 元のコミットのSHA-1ハッシュが保持される。 | |||
* rebase | |||
*: 新しいコミットが作られるため、SHA-1ハッシュが変更される。 | |||
<br> | |||
==== コンフリクト解決 ==== | |||
* merge | |||
*: マージ時に1回だけコンフリクトを解決する。 | |||
* rebase | |||
*: 付け替える各コミットにおいて、潜在的にコンフリクトが発生する可能性がある。 | |||
<br><br> | <br><br> | ||