📌
git branch --merged について
git branch --mergedの挙動を確認しておきたかったのでメモ。
まとめ
- 一度マージしても、その後コミットするとmergedから消える
- cherry-pickでコミットを取り込んでもmergedにならない
マージしていない状態でmergedを確認
ブランチはmasterとbranch_1があり、まだマージしていません。
git log graphで確認します。
$ git log --graph --oneline --all --pretty=format:'%d'
* (HEAD -> master)
| * (branch_1)
|/
*
masterとbranch_1、それぞれにcheckoutしてmergedを確認します。
$ git branch --merged
* master
# branch_1にcheckoutした場合のmergedも確認する
$ git checkout branch_1
Switched to branch 'branch_1'
$ git branch --merged
* branch_1
それぞれ自身のブランチのみ出力されました。
masterにbranch_1をマージした状態でmergedを確認
masterにcheckoutしてbranch_1を取り込みます。
$ git checkout master
Switched to branch 'master'
$ git merge branch_1
Merge made by the 'ort' strategy.
branch_1.txt | 10 ++++++++++
1 file changed, 10 insertions(+)
create mode 100644 branch_1.txt
masterとbranch_1でそれぞれにcheckoutしてmergedを確認します。
$ git branch --merged
branch_1
* master
$ git checkout branch_1
Switched to branch 'branch_1'
$ git branch --merged
* branch_1
masterにbranch_1をマージしたので、
masterで--mergedを実行した際、branch_1が表示されました。
branch_1のコミットをmasterにcherry-pickしてmergedを確認
branch_1にコミットをします。
以下コミット後のgit log graphです。
$ git log --graph --oneline --all --pretty=format:'%d %h'
* (HEAD -> branch_1) e4099b7
| * (master) 28ea2fb
| |\
| |/
|/|
* | a8312f9
| * f30469a
|/
* d346c23
その後masterにcheckoutして、
先ほどbranch_1にコミットしたコミットをmasterにcherry-pickします。
$ git checkout master
Switched to branch 'master'
$ git cherry-pick e4099b7
[master 350e4bb] modify branch_1 file
Date: Sun Nov 27 16:32:11 2022 +0900
1 file changed, 10 insertions(+)
masterとbranch_1でmergedを確認します。
$ git checkout master
Already on 'master'
$ git branch --merged
* master
$ git checkout branch_1
Switched to branch 'branch_1'
$ git branch --merged
* branch_1
branch間で差分は無いはずですがmasterのmergedからbranch_1が消えました。
Discussion