8

いくつかの変更が加えられた Z ブランチと、競合する変更が加えられた M ブランチの 2 つがあります。Z の最初の変更を M にマージしたいと思います。どの変更がまだ残っているかを確認しようとすると。(実際にはさらにいくつかの変更がありますが、これはすでに問題を示しています)

$ git checkout M
$ git cherry M Z
+ 153c2f840f2192382be1fc435ceb069f0814d7ff
+ 4a7979d5dd526245b51769db21acf4c286825036

$ git cherry-pick 153c2f840f2192382be1fc435ceb069f0814d7ff
error: could not apply 153c2f8... add Z
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
• (M|CHERRY-PICKING) $ git st
# On branch M
# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      README.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
• (M|CHERRY-PICKING) $ vim README.txt 

ここで競合を修正しました

• (M|CHERRY-PICKING) $ git add README.txt
• (M|CHERRY-PICKING) $ git ci -m'cherry picked'
  [M dc5de35] cherry picked
  1 file changed, 1 insertion(+), 1 deletion(-)
• (M) $ git cherry M Z
+ 153c2f840f2192382be1fc435ceb069f0814d7ff
+ 4a7979d5dd526245b51769db21acf4c286825036

したがって、変更をコミットした後も、どちらの変更も私が期待していたチェリーピックではないと考えられます。

- 153c2f840f2192382be1fc435ceb069f0814d7ff
+ 4a7979d5dd526245b51769db21acf4c286825036

153c2f を既にマージしたことを 1 週間後にどうやって知ることができますか? そのマージについて知る方法でチェリーピッキングを行うにはどうすればよいですか?

4

1 に答える 1

3

どのように知ることができますか?

git cherry同じものを持つコミットのみを認識するためgit patch-id(マニュアルページを参照)、つまり、重要な競合を解決しなければならなかったコミットのみを認識するため、使用しないでください。

したがって、コミットメッセージを見て知る必要があります。

将来のマージはチェリーピックについてどのように知るのですか?

厳選された変更を適用したときに競合を解決したので、将来ブランチ全体をマージするときに、そのコミットは簡単にマージする必要があります。

競合をどのように解決したかを git が記憶することを本当に心配している場合は、git rerereを有効にすることができます。

git config --global rerere.enabled true
于 2013-04-17T21:37:52.010 に答える