0

ファイルの履歴に「面白い」競合解決を伴うマージコミットが含まれている場合、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.txtEラインの現在の状態を説明するために失敗します。

$ 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によって製造されている。)

+0

? 'gitのログは--oneline 4a69f452 test.txt'は'私のためにコミット9fc'示しています。 –

+1

追加し ' --cc'と 'git log'は組み合わされたdiffを見て、変更を見つけるはずです。なぜデフォルトのオプションが彼らの方法であるのか分かりません(彼らはあるGitバージョンから別のものへあなたのGitHubリンクからクローンを作成すると、2.10.1で '9fc'コミットが表示されます)。 – torek

+0

@torekあなたは正しいです、' --cc'はコミットを受け取ります。マニュアルページの「Diff Formatting」セクションにリストされています。ログに含まれているコミットに影響を与えないようにします*! '2.10.1'に' --cc'がなくてもマージコミットを取得しますか? –

答えて

0

これは、log.follow設定オプションがtrueに設定されている場合、または同等に、logコマンドに--followを渡した場合に発生します。

このオプションのドキュメントでは、「非線形履歴ではうまく機能しません」と表示されています。私はこれが彼らが意味するものだと思います。 2.7.4を使用して、使用しているのGitのバージョン:(

$ git log --oneline 4a69f452 -- test.txt 
4a69f45 add -stuff at C and G 
9fc8e8b resolve E-alpha + E-beta as E-gamma 
95bc62e add -beta suffix on lines E and J 
465abd9 add -alpha suffix on lines A and E 
f43dc68 initial ten-line A..J file 

$ git log --oneline 4a69f452 --follow -- test.txt 
4a69f45 add -stuff at C and G 
95bc62e add -beta suffix on lines E and J 
465abd9 add -alpha suffix on lines A and E 
f43dc68 initial ten-line A..J file 
関連する問題