Gitのマージ
基本的なマージの操作方法
# 対象ブランチに切り替える
git checkout {branch_name}
# マージする
git merge {new_branch}
▼マージ前
* bbac238 - add sample4.txt (HEAD -> test) (3 seconds ago:2020-06-16 14:17:47 +0900) <Erika>
* 770ae3b - add sample3.txt (71 seconds ago:2020-06-16 14:16:39 +0900) <Erika>
| * f3bf129 - add sample2.txt (master) (34 seconds ago:2020-06-16 14:17:16 +0900) <Erika>
| * 1241db9 - add sample1.txt (2 minutes ago:2020-06-16 14:15:51 +0900) <Erika>
|/
* 5f09f67 - initial commit (origin/master) (3 hours ago:2020-06-16 11:10:42 +0900) <Erika>
▼マージ後
* 3d3614d - Merge branch 'test' (HEAD -> master) (6 seconds ago:2020-06-16 14:18:42 +0900) <Erika>
|\
| * bbac238 - add sample4.txt (test) (61 seconds ago:2020-06-16 14:17:47 +0900) <Erika>
| * 770ae3b - add sample3.txt (2 minutes ago:2020-06-16 14:16:39 +0900) <Erika>
* | f3bf129 - add sample2.txt (2 minutes ago:2020-06-16 14:17:16 +0900) <Erika>
* | 1241db9 - add sample1.txt (3 minutes ago:2020-06-16 14:15:51 +0900) <Erika>
|/
* 5f09f67 - initial commit (origin/master) (3 hours ago:2020-06-16 11:10:42 +0900) <Erika>
マージのオプションについて
オプション一覧
オプション | 説明 |
---|---|
--ff | デフォルト設定。2つのブランチがfast-forwardな関係の場合、コミットは作成されない。 |
--no--ff | 2つのブランチがfast-forwardな関係の場合でも、コミットは作成される。 |
--squash | 対象ブランチの差分が取り込まれる。コミットは作成されない。 |
※fast-forwardな関係・・・二つのブランチが同じ線上にある状態のこと
Fast Forward Merge
操作コマンド
git merge --ff {branch_name}
▼マージ前
* 62c59b1 - add sample1.txt (HEAD -> test) (4 seconds ago:2020-06-16 14:42:26 +0900) <Erika>
* 5f09f67 - initial commit (origin/master, master) (4 hours ago:2020-06-16 11:10:42 +0900) <Erika>
▼マージ後
* 62c59b1 - add sample1.txt (HEAD -> master, test) (26 seconds ago:2020-06-16 14:42:26 +0900) <Erika>
* 5f09f67 - initial commit (origin/master) (4 hours ago:2020-06-16 11:10:42 +0900) <Erika>
No Fast Forward Merge
操作コマンド
git merge --no-ff {branch_name}
▼マージ前
* 62c59b1 - add sample1.txt (HEAD -> test) (4 seconds ago:2020-06-16 14:42:26 +0900) <Erika>
* 5f09f67 - initial commit (origin/master, master) (4 hours ago:2020-06-16 11:10:42 +0900) <Erika>
▼マージ後
* 57c3e70 - Merge branch 'test' (HEAD -> master) (6 seconds ago:2020-06-16 14:46:02 +0900) <Erika>
|\
| * 62c59b1 - add sample1.txt (test) (4 minutes ago:2020-06-16 14:42:26 +0900) <Erika>
|/
* 5f09f67 - initial commit (origin/master) (4 hours ago:2020-06-16 11:10:42 +0900) <Erika>
Squash Merge
操作コマンド
git merge --squash {branch_name}
git commit -m ''
▼マージ前
* 9c08e4b - add sample2.txt (HEAD -> master) (2 seconds ago:2020-06-16 14:48:27 +0900) <Erika>
| * 62c59b1 - add sample1.txt (test) (6 minutes ago:2020-06-16 14:42:26 +0900) <Erika>
|/
* 5f09f67 - initial commit (origin/master) (4 hours ago:2020-06-16 11:10:42 +0900) <Erika>
▼マージ後
* 2e48ea9 - merge squash sample1.txt (HEAD -> master) (4 seconds ago:2020-06-16 15:07:00 +0900) <Erika>
* 9c08e4b - add sample2.txt (19 minutes ago:2020-06-16 14:48:27 +0900) <Erika>
| * 62c59b1 - add sample1.txt (test) (25 minutes ago:2020-06-16 14:42:26 +0900) <Erika>
|/
* 5f09f67 - initial commit (origin/master) (4 hours ago:2020-06-16 11:10:42 +0900) <Erika>