Gitk 이해 가이드? [닫은]


83

저는 개발자 팀에 git을 소개하고 있는데 gitk가 놀라운 도구라는 것을 알게되었습니다. gitk를 이해하려면 git 히스토리와 뷰어 도구 자체에 대한 이해가 필요하기 때문에 이해하기도 매우 어렵습니다.

누구든지 "gitk를 사용한 git 역사에 대한 초보자 가이드"와 같은 좋은 언급이 있습니까?



lostechies.com/joshuaflanagan/2010/09/03/… 블로그 는 gitk 프레젠테이션을 안내하고 gitk의 오른쪽 클릭 메뉴를 이해하는 데 도움이 될 수 있습니다.
koppor

답변:


93

나는 gitk에 대해 특별히 본 적이 없습니다. 여기에 "작동 방식"의 관점에서 찌르는 것이 있습니다. 모든 것 (또는 적어도 일반적으로 동등한 것) 뒤에있는 명령을 아는 것은 명령 줄 도구를 더 쉽게 사용하는 방법을 배우는 데 도움이되며 gitk를 더 잘 이해하기 위해 문서에서 찾을 위치를 보여줍니다!

파일 메뉴

이것은 지난 몇 가지 주요 버전에서 다소 변경되었습니다. 현재 상태를 설명하고 있습니다.

  • 업데이트 및 새로 고침 : 이것은 아마도 가장 혼란스러운 일입니다. 다시로드는 동일한 구성으로 프로그램을 다시 시작한 것처럼 모든 것을 새로 고칩니다. 즉, 분기가 제거 / 리베이스 된 경우 일부 커밋이 현재 매달려 있으면 더 이상 볼 수 없습니다. 반면 업데이트는 모든 정보를 새로 고치지 만 이전에 표시된 모든 커밋을 계속 표시합니다. 이것은 당신이 rebasing하고 있고 당신이 엉망이되지 않았는지 확인하고 싶을 때 사용하기에 훌륭한 것입니다-당신은 원본과 rebased 버전을 모두 볼 수 있습니다.

  • 참고 문헌 : 꽤 분명합니다. 참조에는 태그와 분기 (원격 일 수 있음)가 포함됩니다. 다시 읽을 수 있으며 특정 항목을 클릭하여 기록에 표시 할 수 있습니다.

견해

는 AS man 페이지는 말한다, gitk이 소요 자식-REV-목록의 역사를 표시해야하는지 지정 도움에 옵션을. "보기"메뉴에서 대화식으로 설정할 수도 있습니다. 맨 페이지는 뷰를 제어 할 수있는 방법에 대한 자세한 정보를 찾을 수있는 훌륭한 장소입니다 (대부분 커밋 제한 섹션에 있음). 당신이 검토 한 경우 git-log먼저이 많이 본 것입니다.

도움

여기에 키 바인딩 목록이 있습니다! 단.

상황에 맞는 메뉴

이것은 일반적으로 공통 / 기본 작동 모드에서 몇 가지 일반적인 git porcelain 명령을 제공합니다. 그것들을 나열하면 최소한 그들이 무엇을하는지 이해하는 데 적합한 문서를 찾는 데 도움이 될 것입니다.

  • git-diff (Diff this <-> selected
  • git-format-patch (패치 만들기)
  • git-tag ( 태그 생성)
  • git-diff-tree (파일에 커밋 쓰기, 거의 사용되지 않음)
  • git-branch
  • git-cherry-pick
  • git-reset (reset branch to here) 이것은 각각의 기능에 대한 간략한 알림과 함께 소프트, 혼합 또는 하드를 묻는 메시지를 표시합니다. 매뉴얼 페이지에 더 긴 설명이 있지만, 실제로 그것을 얻으려면 인덱스의 개념을 이해해야합니다.

이 시점에서 "커밋 표시"및 관련 명령은 자명해야합니다.

브랜치의 컨텍스트 메뉴에는 git-checkout-dgit-branch 의 (삭제) 모드가 있습니다.

중간 섹션

  • SHA1 ID : 현재 커밋의 해시입니다. gitk를 사용하여 찾은 커밋에 대한 작업을 수행하기 위해 터미널에 복사 / 붙여 넣기하는 데 매우 유용합니다. 여기에 해시를 붙여 넣을 수도 있습니다.

  • 앞으로 / 뒤로 버튼, 행 번호 ... 당연합니다!

  • 찾기! 여기에서 옵션은 꽤 자명하지만, 모든 사람의 교육을 위해 git-log 매개 변수 유사합니다 . "포함"은 --grep, "접촉 경로"는 인수, 추가 / 제거 문자열은 -S(곡괭이)입니다.

메시지 / 차이 창

여기에 git-diff의 출력과 함께 커밋 메시지가 있습니다. 이것은 git-log -p약간의 추가 사항이있는 using과 같은 것입니다 .

  • "지점"은 다음과 같습니다. git branch -a --contains=<commit>

  • "Precedes"/ "Follows"는 git describe [--contains] <commit>( git-describe )


gitk 메뉴 명령에 대해서는 충분히 공평합니다. +1. 당신은 "gitk"부분에서 잘하고 있지만 나는 정말로 gitk와 역사의 조합에 대한 설명을 기대하고 있었다.
krosenvold

나는 이것을 더 나은 대답으로 만들고 싶습니다! 나는 자식 역사에 대한 설명으로 당신이 의미하는 바에 대해 너무 명확하지 않은 것 같습니다. 설명이 필요한 분기와 병합의 개념입니까? 커밋이 해시를 통해 이전 커밋에 직접 의존한다는 사실은 무엇입니까? 문자 그대로 화면에서 역사를 보면 설명 할 것이 많지 않은 것 같습니다.
Cascabel

나는 어쩌면 내가 둔한 미안 해요,하지만 난 이해가 안 돼요 어떻게 단지 git commit -a또는 git addgitk이있다. 내가 놓친 것이 있습니까?
ubershmekel

2
@ubershmekel gitk는 그런 일을하지 않습니다. 그들을위한 GUI를 원한다면 내장 된 것은 git gui. 이 질문은 gitk에 관한 것이며 gitk는 본질적으로 히스토리 브라우징 도구입니다 (약간의 분기 조작 포함).
Cascabel

24

다음은 스크린 샷과 함께 gitk의 분기 기록 시각화에 대한 소개입니다.

http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/

  1. 왼쪽 상단 창에는이 저장소에 대한 일련의 커밋이 표시되며 가장 최근 항목이 맨 위에 표시됩니다.
  2. 토니 스타크가 세 가지 커밋을했습니다.
  3. 가장 최근 커밋에 대한 커밋 메시지는 "세 번째 커밋"이었습니다.
  4. "master"라는 단일 로컬 브랜치가 있으며 가장 최근 커밋을 가리 킵니다.
  5. 단일 원격 참조 분기가 있습니다. "origin"이라는 원격 저장소의 "마스터"분기는 또한 가장 최근 커밋을 가리 킵니다.
  6. 상단 커밋 옆의 노란색 점은 현재 내 작업 폴더에있는 스냅 샷임을 나타냅니다 (HEAD라고 함).
  7. 두 번째 커밋을 강조 표시하여 아래쪽 창에서 세부 정보를 볼 수 있습니다.
  8. 두 번째 커밋의 커밋 SHA (Subversion 개정 번호와 유사한 고유 식별자)는
    3d024dd9e4a83d8c6a9a143a68b75d4b872115a6입니다.
  9. 오른쪽 아래에는 두 번째 커밋의 영향을받는 파일 목록이 표시됩니다.
  10. 왼쪽 하단은 전체 차이를 포함한 커밋 세부 정보를 보여줍니다.
  11. 오른쪽 아래 창에서 파일을 클릭하면 왼쪽 아래 창의 diff가 해당 섹션 12로 스크롤됩니다.

3

초보자들이 "gitk와 히스토리의 결합"이라는 관점에서 실제로 사용할 수있는 것은 gitk 트리 뷰를보고 무슨 일이 일어 났는지 인식하는 방법에 대한 구체적인 설명입니다.

내가 얻은 한-나무를 보는 올바른 방법은 (물론)입니다.

 1. each node is a commit
 2. ultimate parent is at the bottom
 3. direct child to a commit is the one that happened first in the same branch (no matter who did it)
 4. the node with 2 or more children indicates ... ?
 5. merge commit node has 2 parents.
 6. rebase is recognized ... ?

스크린 샷도 감사하겠습니다.

트리는 실제로 저장소의 현재 상태를 나타냅니다. 트 리뷰를보고 무슨 일이 일어 났는지 알 수 있다면 좋을 것입니다.

감사

V.


1
4. ... 브랜치, 6. ... 기존 커밋을 재정렬하기 때문에 전혀 아닙니다
centic

1

gitk 인터페이스에서 유용하다고 생각되는 유일한 것은 멋진 (다채로운) 브랜치 개요입니다.

git 용 GUI가 필요한 경우 Windows의 TortoiseGit 또는 Mac의 GitX 또는 Linux의 QGit를 확인하십시오.


4
성급한 판단이라고 생각합니다. 물론 액션 빌더는 멋지지만 gitk 컨텍스트 메뉴에 내장 된 많은 항목이 누락되었습니다. gitk는 시각적 피드백으로 분기를 조작하는 매우 쉬운 방법을 제공하며, 이는 특히 신규 사용자에게 유용합니다.
Cascabel

1
나는 cli가 더 마음에 들지만 때로는 분기와 병합을보기 위해 gitk를 호출합니다. 나는 새로운 사용자들에게 gitk 인터페이스를 추천하지 않을 것입니다.
Davy Landman

이상하게도 두 분 모두 옳다고 생각합니다.
innaM
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.