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 
:

$ 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 

(참고 : 위의 출력이 자식 버전 2.11.0 의해 제조된다.)

+0

?'자식 로그 --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 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