LoginSignup
0
0

More than 3 years have passed since last update.

Gitのマージ・マージオプションについて

Posted at

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>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0