ファイルの履歴に「面白い」競合解決を伴うマージコミットが含まれている場合、git log
はスキップします。なぜこれが、そして、私はそのコミットを含めることができますか?なぜパス制限された 'git log'はマージを省略して面白い競合解決をコミットしますか?
(「面白い」と、私はちょうどHEAD
またはMERGE_HEAD
逐語からバージョンを取らない解像度を意味する。)
例えば、this sample repositoryで、私は問題を示し、簡単な歴史を用意しました:
$ git show 9fc8e8bf -U0 | grep -A100 ^@@
@@@ -5,1 -5,1 +5,1 @@@
- E-alpha
-E-beta
++E-gamma
0123:
$ git log --oneline --graph
* 4a69f452 add -stuff at C and G
* 9fc8e8bf resolve E-alpha + E-beta as E-gamma
|\
| * 95bc62e9 add -beta suffix on lines E and J
* | 465abd9e add -alpha suffix on lines A and E
|/
* f43dc68c initial ten-line A..J file
マージがE
ラインの全く新しいバージョンを導入することで、競合を解決コミット
しかし、git log
はこれを完全に見ています。それが一覧表示されますコミットはtest.txt
にE
ラインの現在の状態を説明するために失敗します。
$ git log --oneline 4a69f452 test.txt
4a69f452 add -stuff at C and G
95bc62e9 add -beta suffix on lines E and J
465abd9e add -alpha suffix on lines A and E
f43dc68c initial ten-line A..J file
私はそれがマージコミット含めるようになりますgit log
に与えることができるオプションがありますか? E
ラインが9fc...
マージに触れた最後であったことを示しているんgit blame
よう
他のコマンドは、コミット:
$ git blame -L5,5 4a69f452 test.txt
9fc8e8bf9 (Matt McHenry 2016-12-28 16:55:10 -0500 5) E-gamma
(注:上記の出力はgitのバージョン2.11.0
によって製造されている。)
? 'gitのログは--oneline 4a69f452 test.txt'は'私のためにコミット9fc'示しています。 –
追加し ' --cc'と 'git log'は組み合わされたdiffを見て、変更を見つけるはずです。なぜデフォルトのオプションが彼らの方法であるのか分かりません(彼らはあるGitバージョンから別のものへあなたのGitHubリンクからクローンを作成すると、2.10.1で '9fc'コミットが表示されます)。 – torek
@torekあなたは正しいです、' --cc'はコミットを受け取ります。マニュアルページの「Diff Formatting」セクションにリストされています。ログに含まれているコミットに影響を与えないようにします*! '2.10.1'に' --cc'がなくてもマージコミットを取得しますか? –