GitNotes.50-1.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 50.1: gitk 와 git-gui

대부분의 경우, Git 설치시에 시각적 도구 (visual tool) 인 gitk 와 git-gui 가 함께 설치될 것이다.

gitk 는 그래픽화된 이력 표시기 (graphical history viewer) 이다. 이 도구는 git loggit grep 를 활용하는 강력한 GUI shell 로 생각할 수 있다. 사용자는 이 도구를 이용하여 과거에 있었던 일들을 검색하거나, 프로젝트의 이력을 시각적으로 표시하는 등의 작업을 수행할 수 있다.

Gitk 는 커맨드라인으로부터 실행하는 것이 가장 간단하다. git 저장소 디렉토리로 이동한 이후, 다음과 같이 입력한다:

$ gitk [git log options]

Gitk 는 다양한 커맨드라인상의 옵션들을 받게 되어 있는데, 대부분의 옵션은 툴의 근간이 되는 git log 에 해당하는 동작 수행을 위해 전달되게 되어 있다. 가장 유용하게 사용되는 옵션은 아마도 비단 HEAD 에서만이 아닌 모든 ref 들로부터 접근 가능한 (reachable) 모든 커밋을 표시하게 해주는 --all 옵션일 것이다. Gitk 의 인터페이스는 아래와 같다:

gitk

상단에는 git log --graph 의 출력 결과와 유사한 형태가 표시되어 있다; 각 점은 커밋을 나타내며, 점들을 잇는 선은 부모와의 관계를 표현해 주며, ref 들은 색이 들어간 네모로 표시되어 있다. 노란 점은 HEAD 를 나타내며, 빨간 점은 아직 커밋으로 만들어지지 않은 수정사항들을 나타낸다. 화면 하단에는 선택된 커밋에 대한 정보가 표시되어 있다; 주석 (comment) 과 패치 내용이 화면 왼쪽에, 그리고 요약 정보가 오른쪽에 나타나 있다. 상단과 하단 사이에는 history 검색에 사용되는 조작 장치 (control) 들이 배치되어 있다.

브랜치 이름 혹은 커밋 메시지를 마우스 포인터가 가리키는 상황에서 마우스 오른쪽 클릭을 통해 여러가지 git 관련 기능들을 사용할 수 있다. 여를 들어 다른 브랜치를 checkout 하거나 특정 커밋을 cherry-pick 하는 등의 작업은 클릭 한번만으로 간단히 수행할 수 있다.

git-gui 은 반면에, 커밋을 생성하는 데에 초점을 둔 툴이라고 할 수 있다. 이 툴 역시, 커맨드라인으로부터 실행하는 것이 가장 간단하다:

$ git gui

실행시 다음과 같은 화면이 나타날 것이다:

git-gui

화면 왼쪽 에는 index 에 대한 정보가 나타나 있다; stage 되지 않은 변경사항들은 상단에, stage 된 변경사항들은 하단에 표시되게 된다. 각 파일들 아이콘을 클릭하여 파일 전체를 두 상태간 이동시킬 수도 있고, 파알 이름을 클릭하여 내용 확인을 할 수도 있다.

상단 오른쪽에는 diff view 가 위치되어 있어, 이곳에서 현재 선택된 파일 내의 변경사항들을 확인할 수 있다. 개별 변경사항 조각 (혹은 개별 코드 라인) 들을 이 영역에서 마우스 오른쪽 클릭함으로써 stage 시킬 수 있다.

하단 오른쪽은 메시지 및 실행 영역이다. 텍스트 상자에 메시지를 작성한 후 “Commit” 버튼을 클릭하여 git commit 작업을 수행하는 등의 일들을 처리할 수 있다. “Amend” 라디오 버튼을 선택하여 가장 마지막 커밋을 수정(amend) 할 수도 있는데, 이 경우 “Staged Changes” 영역을 마지막 커밋의 내용으로 갱신하게 된다. 이후 변경사항들을 stage / unstage 하고, 커밋 메시지를 변경한 후, “Commit” 버튼을 눌러 예전 커밋의 내용을 새로운 내용으로 변경할 수 있다.

gitk 와 git-gui 는 작업 지향 (task-oriented) 도구의 좋은 예이다. 각 도구는 특정 목적 (각각 history 확인 및 커밋 작성을 위한) 에 특화되어 만들어 졌으며 해당 목적에 필수적이지 않은 기능들은 모두 생략된 형태를 취하고 있다.

출처: https://git-scm.com/book/en/v2/Git-in-Other-Environments-Graphical-Interfaces

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

+ Recent posts