2009-06-24 7 views
5

Documentation: "git-cherryはコミットID(sha1)ではなくチェンジセットを比較するので、git-cherryを使ってローカルでコミットしたかどうかを調べることができます別のコミットIDで適用されています。git cherry confusion - ドキュメントに記載されているように動作しない

は見てみましょう:

$ git cherry master release-1.1.0 | head -1 
- 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 
$ git show 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 
... 
(cherry picked from commit 409c61b3304373a73c787fdf9c08cc338934b74d) 
... 

Gitのショーはチェンジは、両方のマスターであるとリリース-1.1.0をすることを意味する。.. 409Cに同じチェンジを示し、533E

$ git br --contains 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 
release-1.1.0 
$ git br --contains 409c61b3304373a73c787fdf9c08cc338934b74d 
master 
release-1.0.4 

。だからどうやってgit cherryが533eを見せてくれるの?

答えて

3

「コミットはパッチIDと比較され、git-patch-idプログラムから取得されます」と表示されます。あなたのチェリーピックド差分を適用すると、ちょっと違う差が出てしまうのですか?

この場合、コミットIDが異なるだけでなく、git-patch-idがコミットのために異なるパッチIDを報告するため、パッチidによってパッチIDが関連付けられ、相互のブランチに含まれるとはみなされません。

これは、これをチェックするのは簡単です:

git show 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 | git-patch-id 
git show 409c61b3304373a73c787fdf9c08cc338934b74d | git-patch-id 

のgit-パッチ-idで返された最初のSHA1は、両方の実行の間異なる場合、それは何が起こったかです。

私は理論を試したことはありませんが、マニュアルページを解釈する方法です。

+1

私のパスにgit-patch-idはありませんが、 'git patch-id'は動作します。 –

関連する問題