콘텐츠로 건너뛰기
GitTree

Git 가이드

Git 트리 시각화 도우미 및 뷰어: Git 기록을 그래프로 보는 방법

Git 기록을 트리로 보는 세 가지 방법: 터미널의 git 로그 그래프, gitk 및 클릭 가능한 GUI 커밋 그래프. 그런 다음 레인과 병합을 읽고 필요한 커밋을 찾는 방법을 배웁니다.

작성자: Kodmora업데이트됨 9분 읽음
GitTree 색상으로 구분된 분기 레인, 분기 및 태그 라벨, 참조 사이드바 및 커밋 세부정보 패널이 포함된 커밋 그래프

Git 트리 시각화 도우미는 커밋 기록을 그래프로 그립니다. 모든 점은 커밋이고, 모든 색상 선은 분기이며, 한 점에서 만나는 두 선은 병합입니다. Git 자체에는 두 가지가 있습니다. 터미널에서 git log --graph --oneline --all --decorate을 실행하거나 gitk --all을 엽니다. 클릭, 필터링, 검색할 수 있는 기록을 원할 경우 macOS, Windows 및 Linux에 대해 GitTree, 데스크톱 Git 클라이언트와 같은 GUI 커밋 그래프를 사용하세요.

이 가이드에서는 세 가지를 모두 살펴본 다음 레인을 읽고 커밋을 병합하는 방법과 수천 개의 커밋 중에서 하나를 찾는 방법을 보여줍니다. 짧은 공개: GitTree의 제작자가 작성했습니다. 명령줄과 gitk 섹션에는 Git만 필요합니다.

Git 로그 그래프: Git에 이미 내장된 트리 보기

가장 빠른 Git 트리 보기는 하나의 명령입니다. SSH를 통해 모든 저장소와 Git이 실행되는 모든 시스템에서 작동합니다.

git log --graph --oneline --all --decorate
  • --graph는 분기의 텍스트 그래프를 그리고 각 커밋의 왼쪽에 병합합니다. 또한 자식 앞에 부모가 나타나지 않도록 커밋을 정렬합니다.
  • --oneline는 커밋당 한 줄, 즉 짧은 해시와 메시지의 첫 번째 줄을 인쇄합니다.
  • --all는 현재 있는 분기뿐만 아니라 모든 분기, 원격 분기 및 태그와 HEAD를 표시합니다. 이것이 없으면 현재 브랜치에 병합되지 않은 브랜치는 숨겨진 상태로 유지됩니다.
  • --decorate는 가리키는 커밋 옆에 분기 및 태그 이름을 인쇄합니다. Git은 출력이 터미널로 이동할 때 이미 이 작업을 수행하므로 출력을 파이프하거나 log.decorate을 변경할 때 플래그가 가장 중요합니다.

출력은 다음과 같습니다. 최신 커밋이 맨 위에 있고, *는 커밋을 표시하고, |, \ 및 / 문자는 분기선입니다.

*   a1b2c3d (HEAD -> main) Merge branch 'feature/search'
|\
| * 9f8e7d6 (feature/search) Highlight matched terms
| * 5c4b3a2 Add search index
* | 1a2b3c4 Fix typo in README
|/
* 0f9e8d7 (tag: v1.0.0) Release 1.0.0

아래에서 위로 읽으십시오. v1.0.0이 릴리스된 다음 두 작업 라인이 나란히 실행되었으며(main의 README 수정, 자체 분기의 검색 기능) 상단의 병합이 다시 결합되었습니다.

짧은 별칭으로 저장하세요.

누구도 매번 4개의 플래그를 입력하고 싶어하지 않습니다. Git 별칭은 전체 명령을 git tree로 바꿉니다.

git config --global alias.tree "log --graph --oneline --all --decorate"
git tree

알아야 할 네 가지 변형

git log --graph --oneline --first-parent main
git log --graph --oneline --all --simplify-by-decoration
git log --graph --oneline main..feature/search
git log --graph --pretty=format:"%h %an %ar %s"
  1. --first-parent는 각 병합의 첫 번째 상위만 따르므로 main는 기능당 하나의 병합으로 무엇이 도착했는지에 대한 직선 목록으로 읽습니다.
  2. --simplify-by-decoration는 브랜치나 태그가 가리키는 커밋만 유지합니다. 즉, 사이에 커밋이 없는 Git 브랜치 트리의 개요입니다.
  3. main..feature/search는 아직 main에 포함되지 않은 feature/search에 대한 커밋을 표시하며 이는 병합으로 인해 발생하는 것입니다.
  4. --pretty=format는 모든 줄에 작성자와 상대 날짜('3일 전')를 추가합니다.

gitk: Git과 함께 제공되는 Git 기록 뷰어

gitk는 Tcl/Tk로 작성된 Git의 자체 그래픽 저장소 브라우저입니다. 커밋 그래프를 그리고 각 커밋의 세부 정보를 표시하며 각 개정판의 파일을 나열합니다. 저장소 내부에서 시작하십시오.

gitk --all

gitk는 git log과 동일한 제한을 허용하므로 시간 범위나 폴더로 범위를 좁힐 수 있습니다. src/에서 지난 2주간의 변경 사항만 열립니다.

gitk --since="2 weeks ago" -- src/

쉘이 gitk: command not found로 응답하면 Git 설치가 이를 생략한 것입니다. Debian과 Ubuntu에서 gitk는 별도의 패키지입니다.

sudo apt install gitk

gitk는 역사를 읽기 위해 만들어졌습니다. 오른쪽 클릭 메뉴에 몇 가지 커밋 작업이 있지만 커밋을 만드는 것은 자체 문서에 프로젝트 기록을 표시하지 않는 형제 도구인 git gui에 속합니다. 일상적인 작업에서는 결국 두 창과 터미널 사이를 전환하게 됩니다.

GUI 커밋 그래프: 클릭할 수 있는 Git 트리 보기

데스크톱 Git 클라이언트는 동일한 트리를 그리지만 모든 행은 라이브입니다. 메시지, 상위 항목 및 변경된 파일을 보려면 커밋을 선택하세요. 마우스 오른쪽 버튼을 클릭하여 분기를 생성하거나 체리 선택 또는 되돌리기를 수행합니다. 분기 레이블을 두 번 클릭하여 확인하거나 한 분기를 다른 분기로 끌어 병합하거나 리베이스합니다. GitTree에서 커밋 그래프는 별도의 뷰어가 아닌 기본 창입니다.

GitTree의 커밋 그래프: 각 브랜치에는 고유한 색상의 레인이 있고, 브랜치 및 태그 라벨은 왼쪽에 있고, 선택한 커밋의 세부 정보와 파일은 오른쪽에 있습니다.
GitTree의 커밋 그래프: 각 브랜치에는 고유한 색상의 레인이 있고, 브랜치 및 태그 라벨은 왼쪽에 있고, 선택한 커밋의 세부 정보와 파일은 오른쪽에 있습니다.

점과 선을 넘어 GitTree이 그래프에 그리는 내용은 다음과 같습니다.

  • 모든 브랜치에 대해 색상으로 구분된 레인이 있으며, 해당 레인이 가리키는 커밋에 로컬, 원격 및 태그 레이블이 있습니다.
  • 아직 커밋하지 않은 변경 사항에 대한 최신 커밋 위의 // WIP 행 및 해당 커밋이 이루어진 시점의 그래프에 그려진 각 숨김.
  • 서명된 커밋에 작성자 아바타와 서명 배지를 추가하세요.
  • GitHub, GitLab, Bitbucket 또는 Azure DevOps를 연결하면 분기 팁에 대한 풀 요청 및 CI 확인 칩이 제공됩니다.
  • 100,000개 커밋(Linux에서 측정)을 넘어 부드럽게 스크롤되므로 큰 기록을 계속 사용할 수 있습니다.

GitTree는 컴퓨터에 이미 설치된 Git(버전 2.39 이상)을 실행하므로 모든 버튼이 일치하는 명령의 기능을 수행합니다. 여전히 두 가지 스타일 중 하나를 선택하고 있다면 Git GUI 사용과 명령줄 사용 비교를 통해 장단점을 알아보세요.

Git 커밋 그래프를 읽는 방법: 레인, 포크 및 병합

그래프가 터미널에서 ASCII인지 창에서 색상이 지정되어 있든 동일한 규칙이 적용됩니다.

Git 커밋 그래프 읽기
당신이 보는 것의미
점(터미널의 *)하나의 커밋. 최신 커밋이 이전 커밋보다 우선합니다.
수직선 또는 차선개발 라인: 한 브랜치에서 서로 이어지는 커밋입니다.
갈라지는 선누군가 해당 커밋에서 브랜치를 시작했고 두 곳에서 작업이 계속되었습니다.
한 점에서 만나는 두 선병합 커밋. 각 줄에 하나씩 두 개의 부모가 있습니다.
main, origin/main 또는 v1.0.0와 같은 라벨로컬 브랜치, 원격 브랜치 또는 해당 커밋을 가리키는 태그. HEAD ->는 체크아웃한 내용을 표시합니다.
하나의 직선, 포크 없음일반적으로 병합 전 빨리 감기 병합 또는 리베이스를 통해 발생하는 선형 기록입니다.

병합 커밋 읽기

병합 커밋에는 두 개의 상위 항목이 있습니다. 첫 번째 상위는 병합할 때 있었던 분기(일반적으로 main)입니다. 두 번째는 병합한 분기입니다. 이것이 --first-parent가 main에 대한 명확한 요약을 제공하는 이유입니다. 모든 기능 분기의 내부를 건너뜁니다. GitTree에서 병합을 선택하면 세부정보 패널에 두 상위 해시가 모두 나열됩니다.

GitTree의 밝은 테마에서 선택된 병합 커밋: 세부정보 패널에는 상위 항목과 병합으로 변경된 파일이 모두 표시됩니다.
GitTree의 밝은 테마에서 선택된 병합 커밋: 세부정보 패널에는 상위 항목과 병합으로 변경된 파일이 모두 표시됩니다.

차선이 교차하고 사진이 혼잡해지면

앞뒤로 합쳐지는 오래 지속되는 가지가 차선을 교차시킵니다. 아무것도 깨지지 않았습니다. 화면에는 필요한 것보다 더 많은 것이 있습니다. 마음에 드는 가지까지 잘라주세요. 터미널에서 --all을 사용하는 대신 이름을 지정합니다(예: git log --graph --oneline main feature/search). GitTree에서 분기 레이블을 마우스 오른쪽 버튼으로 클릭하고 Hide in Graph, Solo in Graph를 선택하여 해당 분기만 표시하거나 왼쪽에 고정을 선택하여 해당 레인을 첫 번째 열에 유지합니다.

Git 기록 검색: 수천 개의 커밋 중에서 하나의 커밋을 찾습니다.

나무를 보는 것은 일의 절반입니다. 나머지 절반은 디버깅 중인 내용을 변경한 커밋을 찾는 것입니다.

명령줄에서 검색

git log --oneline --author="Jane"
git log --oneline --since="2 weeks ago" -- src/
git log --oneline -S"parse_header"
git log --oneline -G"fn [a-z_]+_header"
  • --author는 작성자 이름이나 이메일이 패턴과 일치하는 커밋을 유지합니다.
  • --since 및 --until는 날짜별로 제한되며 -- src/는 해당 경로에 닿은 커밋만 유지합니다.
  • "곡괭이"인 -S는 문자열을 추가하거나 제거한 커밋을 찾습니다. 함수가 언제 나타나거나 사라졌는지 가장 빠르게 학습할 수 있는 방법입니다.
  • -G는 추가되거나 제거된 줄이 정규 표현식과 일치하는 커밋을 찾습니다. [a-z_] 또는 [[:alnum:]]와 같은 POSIX 대괄호 표현식을 사용하세요. \w과 같은 단축키는 모든 Git 빌드에서 작동하지 않습니다.

작성자:, 파일: 및 변경 내용으로 GitTree에서 검색:

그래프 위의 검색(로드된 기록 검색)은 메시지, 작성자, 해시, 분기 또는 태그와 일치합니다. 더 자세히 검색하려면 Ctrl+Shift+P(Mac에서는 ⌘+Shift+P)를 사용하여 명령 팔레트를 열고 #를 입력한 다음 쿼리를 입력하세요. 접두사가 없는 단어는 커밋 메시지를 검색하며 이러한 접두사는 결과를 좁힙니다.

  • author:jane 또는 author:"Jane Doe": 작성자의 이름이나 이메일에 해당 텍스트가 포함되어 있습니다.
  • file:src/main.rs: 커밋이 해당 경로에 닿습니다. 여러 경로를 일치시키려면 이를 반복하세요.
  • change:parse_header: 커밋은 git log -S과 같이 해당 문자열을 추가하거나 제거합니다.
  • change:/fn [a-z_]+_header/: 변경된 줄은 git log -G과 같은 정규 표현식과 일치합니다.

하나의 쿼리로 결합합니다. #fix crash author:jane file:src/는 "충돌 수정"이 언급된 Jane의 커밋을 찾아 src/를 터치합니다. 결과를 나열하는 대신 그래프 자체를 축소하려면 Filter Graph…를 사용하여 한 명의 작성자, 날짜 범위 또는 경로만 유지하세요.

GitTree 명령 팔레트: 커밋을 검색하려면 #, 브랜치 및 태그의 경우 @, 파일의 경우 :를 입력하세요.
GitTree 명령 팔레트: 커밋을 검색하려면 #, 브랜치 및 태그의 경우 @, 파일의 경우 :를 입력하세요.

GitTree에서 Git 트리를 확인하세요.

  1. GitTree 설치

    macOS, Windows 또는 Linux에 대한 GitTree을 다운로드하여 설치하세요. Git 2.39 이상이 설치되어 있는지 확인하세요(Windows에, 즉 Git for Windows을 의미함). Ubuntu 22.04는 이전 Git을 제공하므로 먼저 Ubuntu에서 Git을 업그레이드하세요.

  2. 로그인하고 시작하세요

    GitTree이 열리면 이메일 또는 Git 제공업체를 통해 gittree.app에서 생성된 GitTree 계정으로 로그인하세요. 그러면 그래프와 기타 모든 Git 기능이 무료 플랜에 포함됩니다. 호스팅 통합(GitHub, GitLab, Bitbucket 및 Azure DevOps, 개인 원격 포함) 및 AI 도우미 Nour에는 무료 평가판으로 시작하는 GitTree Pro가 함께 제공됩니다. 무료 계획은 이후에도 계속됩니다.

  3. 저장소 열기 또는 복제

    시작 페이지에서 열기를 선택하고 Git 리포지토리가 있는 폴더를 선택하거나 복제를 선택하여 HTTPS 또는 SSH를 통해 URL에서 폴더를 복사합니다.

  4. 그래프 읽기

    커밋 그래프는 기본 창을 채웁니다. 맨 위에는 최신 커밋, 브랜치당 하나의 색상 레인, 브랜치 및 태그에 대한 레이블이 있습니다. 메시지, 상위 항목 및 변경된 파일을 보려면 커밋을 클릭하세요.

  5. 집중 및 검색

    분기 레이블을 마우스 오른쪽 버튼으로 클릭하여 숨기거나 단독으로 고정하거나 필터 그래프를 사용하고 작성자, 날짜 범위 또는 경로에 대해 명령 팔레트에 #를 입력하여 author:, file: 또는 change:로 검색합니다.

어떤 Git 트리 시각화 도구를 사용해야 합니까?

Git 기록을 시각화하는 세 가지 방법
옵션다음에 가장 적합필요한 것
git log --graphQuick Look, SSH 세션, 스크립트 및 CI 로그Git 전용
긱Git 제품군 자체에서 클릭 가능한 그래프Git(Debian 및 Ubuntu에서는 별도의 gitk 패키지)
GitTree하나의 창에서 이력 읽기, 검색, 변경GitTree(모든 Git 기능에 대한 무료 플랜, GitTree 계정 포함, Nour Pro 포함) 및 Git 2.39 이상

대부분의 개발자는 결국 두 가지 이상을 사용하게 됩니다. 빠른 보기를 위한 터미널, 기록을 살펴보기 위한 GUI, GUI의 대화형 리베이스와 같이 더 쉽게 볼 수 있는 편집을 위한 GUI입니다. 브랜치 및 커밋을 처음 사용하는 경우 초보자를 위한 Git 가이드로 시작한 다음 무료 강의 커밋, HEAD 및 개정 범위 읽기에서 기록 읽기를 연습하고, 분리 작업 유지에서 분리 HEAD가 무엇인지 알아보세요. 데스크톱 앱을 비교하려면 최고의 Git GUI 클라이언트 모음집을 참조하세요.

GitTree에는 개인 저장소가 포함된 모든 Git 기능을 포함하는 무료 요금제가 있으며 AI 도우미인 Nour에는 GitTree Pro가 함께 제공됩니다. 커밋 그래프와 나머지 앱이 수행할 수 있는 모든 작업을 확인하거나 Mac, Windows 및 Linux에 대한 설치 노트를 읽어보세요.

자주 묻는 질문

Git 트리 시각화 도구란 무엇입니까?

Git 트리 시각화 도우미는 리포지토리의 커밋 기록을 단순 목록 대신 그래프로 그리는 도구입니다. 각 커밋은 점이고 각 분기는 선이며 병합은 선이 결합되는 위치에 표시됩니다. Git에는 터미널용 git log --graph 명령과 gitk 창이라는 두 가지가 포함되어 있습니다. GitTree와 같은 데스크톱 Git 클라이언트는 클릭 가능하고 검색 가능한 그래프를 추가합니다.

터미널에서 Git 분기 트리를 어떻게 볼 수 있나요?

저장소 내에서 git log --graph --oneline --all --decorate를 실행합니다. --graph는 브랜치 라인을 그리고, --oneline는 각 커밋을 한 라인에 유지하고, --all는 현재 브랜치만이 아닌 모든 브랜치와 태그를 포함하고, --decorate는 브랜치와 태그 이름을 인쇄합니다. git config --global alias.tree "log --graph --oneline --all --decorate"를 사용하여 별칭으로 저장한 후 git tree을 입력합니다.

git log에 내 브랜치가 모두 표시되지 않는 이유는 무엇입니까?

기본적으로 git log에는 체크아웃한 커밋인 HEAD에서 연결할 수 있는 커밋만 나열됩니다. 현재 분기에 병합되지 않은 분기는 제외됩니다. 모든 로컬 분기, 원격 분기 및 태그를 포함하려면 --all를 추가하거나 원하는 분기 이름을 지정하세요(예: git log --graph main feature/search).

gitk는 Git과 함께 설치되나요?

gitk는 Git 제품군의 일부이므로 많은 설치에 포함됩니다. 일부 Linux 배포판은 별도로 패키지합니다. Debian 및 Ubuntu에서는 sudo apt install gitk을(를) 사용하여 설치합니다. 모든 분기를 보려면 gitk --all를 사용하여 저장소 내부에서 시작하세요. --since 또는 -- src/와 같이 git log과 동일한 날짜 및 경로 제한을 허용합니다.

특정 코드 줄을 추가한 커밋을 어떻게 찾나요?

곡괭이 검색을 사용하세요. git log -S"text"는 정확한 문자열이 나타나는 횟수를 변경한 커밋을 나열하며, 추가 및 제거된 시기를 보여줍니다. git log -G"regex"는 정규 표현식에 대해 추가되거나 제거된 줄과 일치합니다. GitTree에서 명령 팔레트를 열고 #를 입력한 후 동일한 검색에 대해 change:text 또는 change:/regex/를 사용합니다.

GitTree는 무료이며 어떤 시스템에서 실행됩니까?

GitTree에는 개인 및 조직, 개인 저장소 및 상업적 사용을 포함하여 시간 제한이나 신용 카드 없이 모든 Git 기능을 포함하는 무료 계획이 있습니다. AI 비서인 Nour는 GitTree Pro와 함께 제공됩니다. 가격 페이지에서는 두 계획을 비교합니다. macOS 13 이상, 64비트 Windows 10 및 11, 64비트 Linux(Ubuntu 22.04 이상, Debian 12 이상)에서 실행됩니다. GitTree 계정으로 로그인하라는 메시지가 표시되며 컴퓨터에 이미 설치된 Git 버전 2.39 이상을 사용합니다. GitTree 호스팅 통합에는 Pro가 필요합니다.

Git 그래프 뷰어가 매우 큰 저장소를 처리할 수 있나요?

터미널 그래프는 모든 크기를 처리하지만 분기가 많으면 읽기가 어려워집니다. 분기 이름, --since 또는 경로로 제한하세요. GitTree의 커밋 그래프는 Linux 측정에서 100,000개 커밋을 순조롭게 스크롤하며 브랜치를 숨기거나 단독으로 고정하거나 작성자, 날짜 또는 경로별로 필터링하여 읽을 수 있는 큰 기록을 유지할 수 있습니다.

출처

다른 제품에 대한 주장은 2026년 10월 22일의 공식 페이지에서 확인되었습니다. 가격과 기능은 변경됩니다. 공급업체 페이지가 진실의 원천입니다.