cherry-pickをマージコミット、各々のコミットでどのような差分が出るか?
概要
既にマージ済みのはずなのに差分として表示された。
推測によると、マージコミットをチェリーピックしているので発生するらしい。
多分、差分は見えない方が良いので、どのようにすべきかを検証する。
前提
ブランチ feature/xxxxxx
ブランチ | feature/xxxxxx |
---|---|
masterへのマージコミット | 61316a0f5f41dca335beea470cb8d360ceb36c3c |
ブランチへのコミット | 1dcded16f672fccc34aa62b5969faae9b84c8622(古い)、d16c782849f4943b5333a44135332b3f2507bc75、d00bff9c06e341e53281b9a4b49f604be0000ee4(新しい) |
git log --graph --decorate --oneline
でマージ具合を見れるはず。
作業前
* 0fe91041 (HEAD -> feature/tmp-staging, origin/staging, staging) Merge branch 'xxx-production-1' into 'staging'
|\
| * 2e7c5b0d (origin/xxx-production-1) production xxx
|/
* 11d80946 Merge branch 'feature/xxx_staging' into 'staging'
|\
| * e2ba12c8 (origin/feature/xxx_staging) xxx
|/
* 8010007f Merge branch 'feature/xxx_staging' into 'staging'
|\
| * 1cdba73c (origin/feature/xxx_staging) xxx
feature/tmp-staging
で作業する。
検証
私の方法だと、MRのCommitsタブを開いて、下から順にコミットIDを列挙する方法を考えた。
git cherry-pick a b c…
これと、Merge branchのコミットをチェリーピックするのはどのような差分が起きるのか?
マージコミットをチェリーピックする場合
$ git cherry-pick -m 1 61316a0f5f41dca335beea470cb8d360ceb36c3c
[feature/tmp-staging d61144b2] Merge branch 'feature/xxx' into 'master'
Author: xxx <xxx@xxx>
Date: Mon Oct 26 17:54:49 2020 +0900
13 files changed, 99 insertions(+), 4 deletions(-)
create mode 100644 path/to/file
...
* d61144b2 (HEAD -> feature/tmp-staging) Merge branch 'feature/xxx' into 'master'
* 0fe91041 (HEAD -> feature/tmp-staging, origin/staging, staging) Merge branch 'xxx-production-1' into 'staging'
|\
| * 2e7c5b0d (origin/xxx-production-1) production xxx
|/
* 11d80946 Merge branch 'feature/xxx_staging' into 'staging'
|\
| * e2ba12c8 (origin/feature/xxx_staging) xxx
|/
* 8010007f Merge branch 'feature/xxx_staging' into 'staging'
|\
| * 1cdba73c (origin/feature/xxx_staging) xxx
コミットを範囲指定で指定する場合
$ git cherry-pick 1dcded16f672fccc34aa62b5969faae9b84c8622^..d00bff9c06e341e53281b9a4b49f604be0000ee4
[feature/tmp-staging c4be1be0] xxx
Author: xxx <xxx@xxx>
Date: Mon Oct 26 17:01:45 2020 +0900
12 files changed, 96 insertions(+), 4 deletions(-)
create mode 100644 path/to/file
...
[feature/tmp-staging af9edeec] xxx
Author: xxx <xxx@xxx>
Date: Mon Oct 26 17:05:05 2020 +0900
1 file changed, 3 insertions(+)
[feature/tmp-staging c99bab38] xxx
Author: xxx <xxx@xxx>
Date: Mon Oct 26 17:49:01 2020 +0900
1 file changed, 1 insertion(+), 1 deletion(-)
* * c99bab38 (HEAD -> feature/tmp-staging) xxx
* af9edeec xxx
* c4be1be0 xxx
* 0fe91041 (HEAD -> feature/tmp-staging, origin/staging, staging) Merge branch 'xxx-production-1' into 'staging'
|\
| * 2e7c5b0d (origin/xxx-production-1) production xxx
|/
* 11d80946 Merge branch 'feature/xxx_staging' into 'staging'
|\
| * e2ba12c8 (origin/feature/xxx_staging) xxx
|/
* 8010007f Merge branch 'feature/xxx_staging' into 'staging'
|\
| * 1cdba73c (origin/feature/xxx_staging) xxx