あなたはそれをマスターしていない、あなたのdevの枝にいるだけコミットを表示します
git log origin/master.. --no-merges
を使用することができます。さらに、フラグ--no-merges
を使用すると、複数の親を持つコミットが印刷されません。
あなたの2番目の質問への答えはイエスで、マージでベースブランチをコミットする最初の親「である」とあなたがそれにマージされているブランチはシンプルにそれを置くために第2の1(「あります」方法);したがって、リビジョンを探すときは最初の親だけに従うように、フラグ--first-parent
を使用することができます。
これは、あなたがこの歴史がある場合を意味しますので、
* a953ca2 Merge remote-tracking branch 'origin/WildBranch'
|\
| * b5399f7 Commit to WildBranch: 1483140838
| * 30f181d Commit to WildBranch: 1483140837
| * 5f18ce9 NEW BRANCH: WildBranch
* | 42554e5 Commit to master: 1483140840
* | d512b35 Commit to master: 1483140839
|/
* 5f2e69e Commit to master: 1483140836
を私は(最初の親が、最後はマスターで行わコミットされ、マージコミット、a953ca2
に立っている場合^1
は、この最初の親を意味し、 )コミット:
$ git log --pretty=format:"%h" a953ca2^1 -1
42554e5
あなたがマスターにそれをマージするときHEAD)は^2
は、この第二の親がコミットを意味します(あなたのdevの枝に目指していたところ秒1である間:
$ git log --pretty=format:"%h" a953ca2^2 -1
b5399f7
あなたはマスターに立って、それが改正にのみコミットに従います--first-parent
オプションを使用している場合:
$ git log --first-parent --pretty=format:"%h" a953ca2 -4
a953ca2
42554e5
d512b35
5f2e69e