파일의 기록에 "흥미로운"충돌 해결로 병합 커밋이 포함되어있는 경우 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.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
(참고 : 위의 출력이 자식 버전 2.11.0
의해 제조된다.)
?'자식 로그 --oneline 4a69f452 test.txt'이 (가)'나를 위해 커밋 9fc' 보여줍니다. –
추가' --cc'와'git log'는 결합 된 diff를보고 변경 사항을 찾아야합니다. 기본 옵션이 왜 그런지는 모르겠습니다. (그들은 Git 버전 하나에서 다른 버전으로 바뀌는 것 같습니다. 그리고 여러분의 GitHub 링크에서 복제 한 예제를 시도 할 때, 2.10.1에서'9fc' 커밋을 볼 수 있습니다.) – torek
@torek 맞아요,'--cc'는 커밋을 선택합니다. 맨 페이지의 "Diff Formatting"섹션에 나열되어 있습니다. 로그에 포함 된 커밋에 영향을 미치지 않는 것처럼 소리가납니다! '2.10.1'에'--cc'가 없어도 병합 커밋을합니까? –