git 로그 그래프 읽는 방법


95

git 커뮤니티 책에서 다음과 같이 말합니다.

할 수있는 또 다른 흥미로운 일은 다음과 같이 '--graph'옵션을 사용하여 커밋 그래프를 시각화하는 것입니다.

$ git log --pretty=format:'%h : %s' --graph
* 2d3acf9 : ignore errors from SIGCHLD on trap
*   5e3ee11 : Merge branch 'master' of git://github.com/dustin/grit
|\
| * 420eac9 : Added a method for getting the current branch.
* | 30e367c : timeout code and tests
* | 5a09431 : add timeout protection to grit
* | e1193f8 : support for heads with slashes in them
|/
* d6016bc : require time for xmlschema

커밋 히스토리 라인의 아주 멋진 ASCII 표현을 제공합니다.

이 그래프를 어떻게 읽어야합니까? 420eac9나머지와 어떻게 다릅니 까?

답변:


118

별표는 무언가가 커밋 된 위치를 나타냅니다.

e1193f8, 5a0943130e367c(a를 수득 좌측 브랜치에 커밋 된 |반면 오른쪽 분기) 420eac9오른쪽 분기 커밋 (a을 수득 |좌측 분기). 그리고 무엇 420eac9나머지 다른 않습니다 : 그것은 단지 우측 지점에 커밋합니다.

완전성을 위해 :

  • d6016bc 분기점이었다
  • 5e3ee11 병합 커밋입니다
  • 2d3acf9 병합 후 첫 번째 커밋입니다.

4
그래프에 표시된대로 커밋 시간에 대한 질문이있었습니다. 그래프에서 '420eac9'는 '30e367c', '5a09431', 'e1193f8'위에 표시됩니다. 그것은 항상 '420eac9'가 다른 세 개 이후에 커밋되었음을 의미합니까, 아니면 분기에 대한 커밋이 함께 그룹화되고 분기에 나타나는 순서에 시간 상관 관계가 없다는 것을 의미합니까?
Parag 2014 년

4
@Parag : 분기의 커밋이 함께 그룹화됩니다. 브랜치 420eac9의 첫 번째 커밋 이후에 수행 e1193f8되었지만 반드시 이후에는 수행 되지 않았습니다30e367c
eckes

1
@eckes |왼쪽 (가장 왼쪽)에 있는 기호는 내가 현재있는 분기를 나타내는 것입니까?
J86

다른 지점으로 전환하고 동일한 명령을 실행하면 @ J86, 당신은 그래서 당신은에있는 현재 지점에 그래프에 대한 언급이 없다, 같은 출력을 얻을
onofricamila

19

420eac93 개의 "아래"커밋과 다른 지점에 있습니다. 분기는 이후 분기 d6016bc되었고 5e3ee11.


5
분기가 갈라지는 것보다 더 좋은 표현은 두 번째 분기가 d6016bc원래 분기에서 만들어 지고 병렬로 개발 되었다는 것입니다 .
Ilkka 2011 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.