「Gitの基礎 - rebaseとmergeの使い分け」の版間の差分

ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == 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>


案内メニュー