Git에서 브랜치 토폴로지 시각화


883

나는 내 컴퓨터에서 Git과 분리하여 놀고 있는데, 모든 브랜치와 커밋의 정신 모델을 유지하는 것이 어렵다는 것을 알았습니다. 나는 내가 git log어디에서 커밋 히스토리를 볼 수는 있지만 지사를 설명하기 위해 모든 곳에서 사용되는 것으로 보이는 ASCII 맵과 같은 전체 지사 지형을 볼 수있는 방법이 있습니까?

      .-A---M---N---O---P
     /     /   /   /   /
    I     B   C   D   E
     \   /   /   /   /
      `-------------'

누군가가 와서 내 저장소를 가져 오려고하면 정확히 무슨 일이 일어나고 있는지 알아내는 것이 어려울 것입니다.

AccuRev의 스트림 브라우저 의 영향을받는 것 같습니다 ...



1
반쯤 중복되는 @ leif81. @Masi는 그의 질문에서 gitk를 명시 적으로 제외했습니다.
Benjol

답변:


1081

git log --graph또는을 사용하십시오 gitk. (두 가지 모두 수락 --all하면 현재 분기 대신 모든 분기가 표시됩니다.)

지점 이름과 간단한보기를 보려면 다음을 시도하십시오.

git log --graph --decorate --oneline

46
이것은 분기로 커밋에 레이블을 지정하지도 않습니다. 나는 이것을 좋은 시각화라고 부르지 않을 것이다.
Roman Starkov

7
감사! gitg에는 --all옵션이 있으며 커밋에 레이블을 지정합니다. 또한 드롭 다운에서 모든 분기를 선택할 수 있음을 보지 못했습니다.
토마스

210
권장 사항 git log --graph --decorate --oneline-한 줄에 하나의 커밋을 표시하고 분기 이름으로 장식하십시오.
sleske

8
tig (ncurse git client)도 --all옵션을 제공합니다 . 아주 편리합니다!
Pierre-Adrien Buisson

5
옵션 에 대해서는 Andrew의 답변 도 참조하십시오 --simplify-by-decoration.
ruvim

482

나는 보통

git log --graph --full-history --all --pretty=format:"%h%x09%d%x20%s"

색상 포함 (쉘이 배 시인 경우) :

git log --graph --full-history --all --color \
        --pretty=format:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s"

다음과 같은 텍스트 기반 표현이 인쇄됩니다.

* 040cc7c       (HEAD, master) Manual is NOT built by default
* a29ceb7       Removed offensive binary file that was compiled on my machine and was hence incompatible with other machines.
| * 901c7dd     (cvc3) cvc3 now configured before building
| * d9e8b5e     More sane Yices SMT solver caller
| | * 5b98a10   (nullvars) All uninitialized variables get zero inits
| |/
| * 1cad874     CFLAGS for cvc3 to work successfully
| *   1579581   Merge branch 'llvm-inv' into cvc3
| |\
| | * a9a246b   nostaticalias option
| | * 73b91cc   Comment about aliases.
| | * 001b20a   Prints number of iteration and node.
| |/
|/|
| * 39d2638     Included header files to cvc3 sources
| * 266023b     Added cvc3 to blast infrastructure.
| * ac9eb10     Initial sources of cvc3-1.5
|/
* d642f88       Option -aliasstat, by default stats are suppressed

(당신은 그냥 사용할 수는 git log --format=oneline있지만 커밋 메시지를 숫자로 묶을 것입니다.

이 명령에 대한 바로 가기를 만들려면 ~/.gitconfig파일 을 편집 할 수 있습니다.

[alias]
  gr = log --graph --full-history --all --color --pretty=tformat:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s%x20%x1b[33m(%an)%x1b[0m"

그러나 주석에 Vociferous 메모가 있기 때문에 그러한 긴 형식 명령은 기억하기 어렵습니다. 일반적으로 ~/.gitconfig파일에 넣을 수 있으므로 문제가되지 않습니다 . 그러나 구성 파일을 수정할 수없는 원격 시스템에 로그인해야하는 경우 더 간단하지만 더 빨리 버전을 입력 할 수 있습니다.

git log --graph --oneline

10
날짜가 마음에 들면 git log --graph --full-history --all --color --date = short --pretty = format : "% x1b [31m % h % x09 % x1b [32m % d % x1b [ 0m % x20 % ad % s "
sehugg

7
--oneline은 굉장히 형식적인 딥 매직을 대체하는 기억에 남는 대체물입니다.
Daniel Ralston

1
@SodeltheVociferous, 사실, 나는 당신이 이야기하는 측면에서 문제에 접근하지 않았습니다. 나는 대답을 넓혔다.
P Shved

2
참고 : 파일 경로를 --full-history사용 --simplify-by-decoration하거나 지정할 때만 관련이 있습니다.
Slipp D. Thompson

2
형식 문자열을 어디서 구할 수 있습니까? 아니면 지구상에서 그 일을 어떻게 조정 했습니까?
elliotwesoff

443

일반적으로 파일에 던지는 3 개의 별칭 (및 빠른 사용을위한 4 개의 별칭)~/.gitconfig있습니다.

[alias]
    lg = lg1
    lg1 = lg1-specific --all
    lg2 = lg2-specific --all
    lg3 = lg3-specific --all

    lg1-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)'
    lg2-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(auto)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)'
    lg3-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset) %C(bold cyan)(committed: %cD)%C(reset) %C(auto)%d%C(reset)%n''          %C(white)%s%C(reset)%n''          %C(dim white)- %an <%ae> %C(reset) %C(dim white)(committer: %cn <%ce>)%C(reset)'

git lg/ git lg1다음과 같습니다 :

자식 lg1

git lg2 다음과 같이 보입니다 :

자식 lg2

git lg3모양이 맘에 :

자식 lg3

이 솔루션은 모든 솔루션을 의미하는 것이 아니라 원하는대로 변경, 추가 및 수정하기위한 템플릿입니다. 이것을 사용하려면 다음을 권장합니다.

  1. 에 추가하십시오 .gitconfig.
  2. 취향에 맞게 사용자 정의하십시오 (다른 색상 선택, 2 줄 및 3 줄 버전에 대한 다른 줄 배열 등).
  3. 그런 다음 사본을 Gist 또는 다른 코드 스 니펫 도구에 저장하여 나중에 복사하여 붙여 넣을 수 .gitconfig있습니다 (또는 물론 도트 파일을 버전 제어) .

참고 : 답변이 stackoverflow.com/questions/1057564/pretty-git-branch-graphs 에서 답변보다 복사되고 개선되었습니다 . 여기서보다 훨씬 적합하기 때문입니다. 역사적인 이유로 다른 질문에 사본을 남겼습니다. 지금 닫히고 답변은 다른 답변으로 참조됩니다.


10
제안 : 대체 %C(bold yellow)%C(auto)대해 서로 다른 색상을 갖는 대 HEAD, 로컬리모트 브랜치 ( REF ).
Atcold

2
%w(); 를 사용하여 형식 문자열에 들여 쓰기를 수동으로 추가하는 것을 피할 수 있습니다 . 이 방법으로 그래프를 엉망으로 만들지 않고 더 길거나 여러 줄 커밋 메시지를 올바르게 줄 바꿈 할 수도 있습니다.
charliegreen

1
@ mbadawi23 플랫폼 및 Git 설치에서 일관성을 유지하기 위해 중복됩니다. --abbrev-commit두 번째-세 번째 줄은 공백으로 손으로 들여 쓰기 때문에 거기에 있으며 짧은 SHA를 사용하여 미안보다 안전합니다. --decorateGit의 기본값은 동일한 작업을 수행하지만 다른 Git 버전에서 다르게 구성되거나 다르게 설정 될 수 있기 때문에 여기에는 장식이 필요합니다. 궁극적으로 여분 / 중복 플래그는 여기서 나쁘지 않습니다. 이것은 파일에 들어갑니다. 항상 입력하는 것이 아닙니다.
Slipp D. Thompson

1
@TimothyPulliam 각 지점 / 태그의 끝을 나타내는 각 줄의 끝에 괄호 안에 관련 지점 / 태그 이름이 표시됩니다. 예를 들어 lg1& lg2스크린 샷 (origin/test_on_10.8)에서 원격 지점을 볼 수 있으며 lg2스크린 샷 에서 지점 (HEAD -> master, origin/master, origin/HEAD)의 로컬 및 원격 위치 표시 및를 참조하십시오 . 이것은 좀 더 장황하지만 (일부 GUI 도구는 색상 코딩을 사용 하지만) Git의 인기있는 분기 시각화 GUI 도구 (gitk, SourceTree, TortoiseGit, Tower, Fork, GitX)와 일치합니다 . masterHEAD
Slipp D. Thompson

2
@TimothyPulliam 커밋이 "각 분기의 일부"인 것을 이해하려면 컬러 라인을 시각적으로 추적해야합니다. Git 커밋은 본질적으로 어떤 브랜치에도 속하지 않기 때문에 거의 모든 도구가 도움이되지 않습니다. 그래프 시각화 시점에서 부모 조상에있는 브랜치 또는 태그에 속한다는 의미입니다. . 커밋을 참조하는 브랜치 / 태그가없고 사라지는 경우 (약 2 주간 가비지 수집되지 않음) 이전에 참조되지 않은 커밋을 참조하는 분기 / 태그를 추가하면 다시 나타납니다. 이 모든 것이 의미가 있기를 바랍니다.
Slipp D. Thompson

236

이 레시피 (git log 또는 gitk 기반)에 --simplify-by-decoration히스토리의 흥미롭지 않은 선형 부분을 축소하기 위해 추가 할 수 있습니다 . 이를 통해 훨씬 더 많은 토폴로지를 한 번에 볼 수 있습니다. 이제이 옵션 없이는 이해할 수없는 큰 역사를 이해할 수 있습니다!

잘 알려진 것처럼 보이지 않기 때문에 게시해야 할 필요성을 느꼈습니다. 기록 시각화에 대한 대부분의 스택 오버플로 질문에는 나타나지 않으며 원하는 것을 알고 난 후에도 검색하는 데 약간의 시간이 걸렸습니다! 드디어이 데비안 버그 보고서 에서 찾았습니다 . 스택 오버플로에 대한 첫 번째 언급은 Antoine Pelisse의 답변 입니다.


3
완벽-내가 찾던 것! 더 많은 투표를해야합니다. 거의 모든 사람들이 gitk / gitg / git log --graph에 대해 이미 알고 있지만 브랜치 토폴로지를 시각화하고 단일 커밋에 신경 쓰지 않는다면 전혀 유용하지 않습니다.
imolit

4
이것이 바로 내가 필요한 것, 환상적입니다. 그것은 모든 대답 중에서 나를 도운 유일한 것입니다. --simplify-by-decoration무슨 일이 일어나고 있는지 명확하게합니다.
Ela782

9
이것이 실제로 답이되어야합니다. git log --graph --all --simplify-by-decoration잘 작동합니다.
Irfy

단지 우리가 사용할 수있는 경우 --simplify-by-decoration추가 n 개의 커밋 동안 전 / 각 (같은 커밋 deocrated 후 -B-A에 대한 grep).
junvar

이 솔루션을 너무 자주 사용하여 'git tree'로 별칭을 지정했습니다.
user16973

76

Gitk 언젠가는 읽기 힘들다.

여기에 이미지 설명을 입력하십시오

GitVersionTree 작성 하도록 동기를 부여하십시오 .

여기에 이미지 설명을 입력하십시오


3
@exhuma 나는 모노를 지원하기 위해 저자와 PR (Mono 2.10에 대해 Ubuntu 13.10에서 테스트 됨)
Max Ehrlich

1
GitVersionTree는 시간이 지남에 따라 같은 장소에 지점을 유지하므로 상황이 어떻게 바뀌는 지 쉽게 알 수 있습니다.
sfranky

48

내 시간의 99.999 %가 이력을보고 git lg있고 0.001 %가입니다 git log.

유용 할 수있는 두 개의 로그 별칭을 공유하고 싶습니다 (.gitconfig에서 구성).

[Alias]
     lg = log --graph --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
     hist = log --graph --full-history --all --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
  • git lg 현재 지점 기록을 볼 수 있습니다.
  • git hist 전체 지사 기록을 볼 수 있습니다.

44

토폴로지를 명쾌하게 보여주는 크로스 플랫폼 GUI 인 Gitkraken을 살펴보십시오 .

위상

다음 은 몇 가지 고급 기능에 대한 간단한 비디오 자습서 입니다.


6
이 스레드에는 GitKraken이 있지만 이전 및 무료 SourceTree가없는 방법은 무엇입니까? (나는 Atlassian이 항상 모든 것을 올바르게 얻는 것은 아니라는 것을 알고있다. 그러나 SourceTree는 시각화를위한 매우 훌륭한 도구이다.)
XML

43

나는 ~와 함께 git log:

 git log --graph --oneline --branches

(또한 원격 브랜치를보기위한 --all과 함께)

최근 Git 릴리즈와 호환 : 1.6.3 이후 도입 ( 2009 년 5 월 7 일 목요일 )

  • " --pretty=<style>"명령의 로그 패밀리에 대한 " "옵션의 철자를 " --format=<style>" 로 지정할 수 있습니다 .
    또한의 --format=%formatstring속기입니다 --pretty=tformat:%formatstring.

  • " --oneline"는 " "의 동의어입니다 --pretty=oneline --abbrev-commit.

PS D:\git\tests\finalRepo> git log --graph --oneline --branches --all
* 4919b68 a second bug10 fix
* 3469e13 a first bug10 fix
* dbcc7aa a first legacy evolution
| * 55aac85 another main evol
| | * 47e6ee1 a second bug10 fix
| | * 8183707 a first bug10 fix
| |/
| * e727105 a second evol for 2.0
| * 473d44e a main evol
|/
* b68c1f5 first evol, for making 1.0

또한 로그 표시 범위 (커밋 수)를 제한 할 수 있습니다.

PS D:\git\tests\finalRepo> git log --graph --oneline --branches --all -5
* 4919b68 a second bug10 fix
* 3469e13 a first bug10 fix
* dbcc7aa a first legacy evolution
| * 55aac85 another main evol
| | * 47e6ee1 a second bug10 fix

(최근 5 개의 커밋 만 표시)


현재 선택된 솔루션에 대해 내가 싫어하는 것은 다음과 같습니다.

 git log --graph

너무 많은 정보를 표시했습니다 (빠른 요약 만보고 싶을 때).

PS D:\git\tests\finalRepo> git log --graph
* commit 4919b681db93df82ead7ba6190eca6a49a9d82e7
| Author: VonC <vonc@laposte.net>
| Date:   Sat Nov 14 13:42:20 2009 +0100
|
|     a second bug10 fix
|
* commit 3469e13f8d0fadeac5fcb6f388aca69497fd08a9
| Author: VonC <vonc@laposte.net>
| Date:   Sat Nov 14 13:41:50 2009 +0100
|
|     a first bug10 fix
|

gitk 훌륭하지만 마지막 n 커밋을 빠르게 표시하면 충분합니다.


이 방법도 선택하지만 "git graph"를 입력하는 것이 "git log --graph --decorate --oneline"을 실행하는 것과 동일하도록 별칭을 만들었습니다.
Will Pike

@ConnerPike 좋은 생각입니다. 'lg'라는 별칭이 있습니다. stackoverflow.com/a/3667139/6309
VonC

35

Gitg 는 OS X 용 Gitx와 비슷한 Linux 용 훌륭한 도구입니다. 리포지토리의 트리 구조 (gitx와 동일)의 어딘가에서 명령 행에서 'gitg'를 실행하십시오.


3
너무 많은 단어 : gitg에는 드롭 할 메뉴가있어 시각화 할 지점을 선택할 수 있습니다. 이 드롭 다운에는 "모두"옵션도 있습니다.
Phluks

1
또는 gitg --all드롭 다운 메뉴에서 혼란을 피하려면으로 시작할 수 있습니다 .
imolit

25

"git-big-picture"가 매우 유용하다는 것을 알았습니다 : https://github.com/esc/git-big-picture

gitk와 친구가 생성하는 다소 선형적인 "일차원"뷰 대신 도트 / 그래프 비즈를 사용하여 예쁜 2D 그래프를 만듭니다. -i 옵션을 사용하면 분기 지점과 병합 커밋이 표시되지만 그 사이의 모든 내용은 제외됩니다.


커밋이 많지 않고 간단한 솔루션을 원한다면 시도해 볼 수 있습니다.
wiswit

그것은 (당신이 -i를 사용하는 경우) 당신은 (하지 않는 도구, 다음하지만) 착화 지점과 병합이있는 경우, 그것을 읽을 수 없게 될 수도 있습니다 잘 커밋의 수에 따라 확장한다
프랭크 Osterfeld

1
중간 규모의 프로젝트를 통해 수많은 선으로 거대한 그림을 생성합니다. 깊이를 제한 할 수 있습니까? 즉 지난 N 일 정도 커밋합니다.
Ondra Žižka 2016 년

25

좋은 웹 기반 도구는 ungit 입니다. node.js 및 git가 지원하는 모든 플랫폼에서 실행됩니다. 독서보다 읽기가 쉬운 사람들을 위해 어떻게 작동하는지에 대한 비디오 가 있습니다 ...

여기에 이미지 설명을 입력하십시오


21

BranchMaster를 살펴보십시오 .

나는 복잡한 분기 구조를 시각화하기 위해 썼다. 숫자는 커밋 수를 나타냅니다.

여기에 이미지 설명을 입력하십시오


1
이것이 내가 찾고있는 것입니다. 이를위한 대체 명령 / 도구가 있습니까?
Aalex Gabi

3
@AalexGabi 이것을 gitconfig에 넣으면 같은 일을하지만 명령 줄에서는 gbranch = log --graph --graph --sim-by-decoration --pretty = format : '% C (yellow) % h % C (white) % D % C (굵은 검정) % C % AR (재설정) %의 N '--all
kracejic

가지를 시각화하기 위해 데이터를 어떻게 얻습니까?
Snowfish

15

아무도 언급하지 않았 tig습니까? "BranchMaster"와 같이 분기를 접지 않지만 ...

빠르고 터미널에서 실행됩니다.

너무 빠르므로 (+ 키보드 제어) 훌륭한 UX를 얻게되므로 lsgit 저장소를 포함하는 디렉토리의 경우 " " 와 거의 같습니다 .

https://jonas.github.io/tig/

일반적인 단축키, /검색 등이 있습니다.

개정 그래프

(ps.이 스크린 샷의 배경에있는 터미널이며 요즘 더 좋아 보이지만 컴퓨터는 스크린 샷을 거부합니다. 죄송합니다)

(pps. 나는 gitkraken도 사용하고 실제로 명확한 시각화를 가지고 있지만 훨씬 무겁습니다 tig)


나는 터미널 애호가이며 Tig (Git 용 텍스트 모드 인터페이스)는 Git 리포지토리와 상호 작용하기에 좋은 도구이며 그래프보기 및 Git 기록을 포함하여 매우 유용합니다. 나는 터미널 애호가에게 Git 명령 줄에 대한 추가 도구로 권장합니다.
hermeslm

15

Tortoise Git 에는 "Revision Graph"라는 도구가 있습니다. Windows를 사용하는 경우 repo-> Tortoise Git-> Revision Graph를 마우스 오른쪽 버튼으로 클릭하는 것만 큼 쉽습니다.


1
거북이 git을 오랫동안 사용했지만이 기능을 모르는 환상적인 기능.
kreamik

이것은 훨씬 간단합니다. 감사.
Anoop


12

다음과 같은 별칭을 사용합니다.

[alias]
    lol = log --graph --decorate --pretty=oneline --abbrev-commit
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all

위에서 본 별칭보다 색상 구성표에 더 많은 정보가 있습니다. 또한 매우 일반적인 것처럼 보이므로 다른 환경에 존재하거나 설명하지 않고도 대화에서 언급 할 수 있습니다.

스크린 샷과 자세한 설명은 다음과 같습니다. http://blog.kfish.org/2010/04/git-lola.html


12

Mac 사용자의 경우 무료 오픈 소스 도구 인 GitUp ( http://gitup.co/ )을 체크 아웃하십시오.

그래프가 표시되는 방식이 마음에 듭니다. 내가 본 다른 도구보다 명확합니다.

프로젝트는 다음과 같습니다 : https://github.com/git-up/GitUp

GitUp 스크린 샷


이것은 x 축에서 분기와 y 축에서 시간을 볼 수있는 유일한 그래프입니다. 매우 직관적입니다. GitUp은 정말 대단합니다! macOS는 더 이상 그렇지 않으므로 Windows로 전환하고 Gitup을 그리워합니다.
w00t

11

그래프 기록을 보려면 이 git log별칭 이 ~/.gitconfig있습니다.

[alias]
l = log --all --graph --pretty=format:'%C(auto)%h%C(auto)%d %s %C(dim white)(%aN, %ar)'

별명 git l이 있으면 다음과 같이 표시됩니다.

여기에 이미지 설명을 입력하십시오

Git 2.12 +에서는 그래프의 선 색상을log.graphColors 구성 옵션을 .

로그 형식 --oneline에 대해서는 저자 이름 (존중 .mailmap)과 상대 저자 날짜 가 추가 된 것과 비슷 합니다 . %C(auto)커밋 해시 등에 기본 색상을 사용하도록 Git에 알려주 는 구문은 Git> = 1.8.3 에서 지원됩니다 .


1
내가 실제 작가의 날짜를 보는 것은 처음이며 꽤 좋습니다! 고마워, 나는 그것을 gitconfig에 추가 할 것이다!
Simon C.

Windows 사용자는 큰 따옴표와 작은 따옴표를 교체해야합니다
PierDipi에게

11

간결한 방법을 보여주는 이 블로그 게시물 을 찾았 습니다 .

git log --oneline --abbrev-commit --all --graph --decorate --color

일반적으로 위의 명령에 대한 별칭을 만듭니다.

alias gl='git log --oneline --abbrev-commit --all --graph --decorate --color'

간단한 사용 gl .

git config에 별칭을 추가 할 수도 있습니다. [alias]에~/.gitconfig 다음 줄을 열고 추가하십시오 .

[alias]
        lg = log --oneline --abbrev-commit --all --graph --decorate --color

다음과 같이 사용하십시오. git lg


8

.gitconfig를 통해 개인적으로 가장 좋아하는 별칭은 다음과 같습니다.

graph = log --graph --color --all --pretty=format:"%C(yellow)%H%C(green)%d%C(reset)%n%x20%cd%n%x20%cn%x20(%ce)%n%x20%s%n"

6
명령이 어떻게 보일지에 대한 약간의 설명은 훌륭했을 것입니다.
Max

8

VSCode 텍스트 편집기를 사용하는 사람들 은 D. Jayamanne 의 Git History Extension 을 고려하십시오 .

여기에 이미지 설명을 입력하십시오


이 확장은 다소 느립니다. 또한 자동 업데이트되지 않으며 광택이 없어 보입니다. 그러나 그것은 커밋 트리를 시각화하는 좋은 일을합니다 ...
aljazerzen

2
Visual Studio Code의 또 다른 확장은 mhutchie의 Git Graph 입니다. 나는 이것을 GitLens와 함께 사용합니다.
Josef.B

7

Gitx는 OS X를 사용하는 경우 환상적인 시각화 도구입니다.


3
gitk (모두에게)는 매우 비슷합니다. 정확히 같지는 않지만 꽤 비슷합니다.
xero

Gitx의 두 가지 포크가 있습니다- (rowanj)는 현재 최고인 것 같습니다.
rjmunro

7

다른 자식 로그 명령. 너비고정 된 열 :

git log --graph --pretty=format:"%x09%h | %<(10,trunc)%cd |%<(25,trunc)%d | %s" --date=short



2

시도 --simplify-by-decoration했지만 병합이 모두 표시되지 않습니다. 대신 헤더에 "\"및 "/"기호가없는 행을 프룬 (prune)하고 항상 그 뒤에 바로 분기를 나타내는 "("로 행을 유지합니다. 나는 그것들도 제거하고 다음 쉘 별명으로 끝납니다.

gbh () { 
    git log --graph --oneline --decorate "$@" | grep '^[^0-9a-f]*[\\/][^0-9a-f]*\( [0-9a-f]\|$\)\|^[^0-9a-f]*[0-9a-f]*\ (' | sed -e 's/).*/)/'
}

2

더 복잡하게 만들 수 있습니까?

간단한 git log --all --decorate --oneline --graph (A Dog = --All --Decorate --Oneline --Graph 기억)


1
이것은 허용되는 답변과 동일합니다. 그러나 니모닉을위한 소품
aljgom

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