터미널에 Git 트리를 표시 할 수 없습니다


439

Killswitchcollective.com의 이전 기사 인 2009 년 6 월 30 일 에는 다음과 같은 입력 및 출력이 있습니다.

git co master
git merge [your_branch]
git push

upstream    A-B-C-D-E            A-B-C-D-E-F-G
                 \        ---->               \
your branch       C-D-E                        G

OS / X에서 Gitk 또는 Gitx를 사용하지 않고 터미널에서 커밋에 대한 트리 뷰를 얻는 방법에 관심이 있습니다.

터미널에서 커밋에 대한 트리와 같은 뷰를 어떻게 얻을 수 있습니까?


2
질문에 중요하지 않지만 해당 기사를 더 이상 사용할 수 없습니다. 캐시 된 사본은 인터넷 아카이브를 통해 이용 가능합니다 : web.archive.org/web/20110831142839/http://…
Alan De Smet

답변:


795

터미널에서 커밋에 대한 트리와 같은 뷰를 어떻게 얻을 수 있습니까?

git log --graph --oneline --all

좋은 시작입니다.

이상한 편지가 나올 수 있습니다. 색상과 구조에 대한 ASCII 코드입니다. 이 문제를 해결하려면 다음을 추가하십시오 .bashrc.

export LESS="-R"

Tig의 ASCII 필터를 사용할 필요가 없도록

git log --graph --pretty=oneline --abbrev-commit | tig   // Masi needed this 

Git-ready 의 기사 텍스트 기반 그래프 에는 다른 옵션이 있습니다.

git log --graph --pretty=oneline --abbrev-commit

자식 로그 그래프

언급 한 기사와 관련하여 포드의 답변 : 임시 핸드 아웃 출력으로 이동합니다.


Jakub Narębski 는 주석에서 git에 대한 ncurses 기반 텍스트 모드 인터페이스 인 tig를 언급했습니다. 그들의 릴리스를 참조하십시오.
그것은 추가 옵션 2007 년에 다시.--graph


1
방금 레포에서 테스트했습니다. 작동하지만 MSysGit1.6.3이 설치된 Windows에 있습니다.
VonC

files.getdropbox.com은 직장에서 차단되었습니다 :( 약 1 시간 후에 집에 돌아 오는 시간에 사진을 볼 수 있습니다.
VonC 2016 년

@Vonc : 이제 첫 번째 명령에 2를 입력했습니다. 두 번째 명령의 그림과 비슷한 견해를 얻었습니다.
Léo Léopold Hertz 준영

9
git에 대한 텍스트 모드 인터페이스 인 'tig'도 있으며 (ncurses 사용) git-log에 대한 '--graph'옵션이 있기 전에 터미널에서 그래픽 히스토리보기가있었습니다.
Jakub Narębski 2016 년

2
나는 --decorate이런 종류의 디스플레이에서도 없어서는 안될 것을 발견 했습니다. 약식 커밋 이름과 함께 참조 이름 (분기, 원격 및 로컬)을 보여줍니다.
매트 Enright

312

해결책은 귀하의 별칭을 만들고 .gitconfig쉽게 호출하는 것입니다.

[alias]
    tree = log --graph --decorate --pretty=oneline --abbrev-commit

다음에 전화하면 다음을 사용합니다.

git tree

편집하지 않고 ~ / .gitconfig에 넣으려면 다음을 수행하십시오.

git config --global alias.tree "log --graph --decorate --pretty=oneline --abbrev-commit"  

--global을 사용하지 않으면 현재 리포지토리의 .git / config에 배치됩니다.


1
이것이 기본 별칭이 아닌 방법은 무엇입니까? 나는 그것이 Git의 CLI를 조금 덜 사용하게 만들 것이라고 생각한다. 그리고 우리는 그것을 가질 수 없다.
Timmmm

123
git log --oneline --decorate --all --graph

분기 이름이 포함 된 시각적 트리

이를 사용하여 별명으로 추가하십시오.

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

당신은 그것을 호출

git tree

힘내 나무


2
아주 좋아요 래핑 된 줄이 나무를 난독 화하지 않도록 여기less -S설명 된대로 조합하여 사용합니다 .
djvg

60

tig

대화식 트리 를 원하면 을 사용할 수 있습니다 tig. brewOSX 및 apt-getLinux에서 설치할 수 있습니다 .

brew install tig
tig

이것이 당신이 얻는 것입니다 :

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


현재 Tig의 VonC의 답변과 같은 트리를 얻을 수 있습니까? 우리는 VonC의 답변에서 Tig를 Ascii 필터로만 사용합니다.
Léo Léopold Hertz 준영

4

명령을 짧게 유지하면 명령을 더 쉽게 기억할 수 있습니다.

git log --graph --oneline

1

나는 모든 사람이 전체 명령을 작성하도록 제안 할 것입니다.

git log --all --decorate --oneline --graph

별칭을 만드는 대신

명령을 머리에 넣는 것이 좋으므로 기계를 변경할 때 별명에 의존하지 마십시오.


2
실제로 git log --all --decorate --oneline --graph는 니모닉 이후입니다 git log a dog.)
VonC

@VonC 최종 결과는 같습니다. 어쨌든, 나는 당신에 동의합니다. 피드백을 주셔서 감사합니다.
색소폰 연주자

그렇습니다. 이것은 ;)이전 의견의 말미에 스마일리 가 (불완전하게) 전달하려고 한 것입니다. 원하는 순서대로 옵션을 사용할 수 있습니다. 난 그냥 "개를 로그"재미를 찾을 수 있습니다 :)
VonC

1
또는 당신 scp ~/.bashrc root@remote:~/과 당신의 별명은 정말 빨리 움직입니다.
Adminy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.