Git은 로그에 모든 분기 (숨김 제외)를 표시합니다.


84

확장되는 Git 별칭이 있습니다.

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

에 따르면 man git log의심스러운 몇 가지 옵션 거기 : --not--branches; 하지만 제대로 작동하지 않습니다.

은닉을 숨기려면 어떻게 편집해야합니까?


참고 : 당으로 허용 질문의견을.gitconfig지금과 같은 별칭 :

[alias]
    l = log --branches --remotes --tags --graph --oneline --decorate --notes HEAD

답변:


125

대신 일을 --all숨겨 놨다을 필터링하려고 다음과, 최초의 장소에 포함되지 않습니다 :

git log --branches --remotes --tags --graph --oneline --decorate

나중에 필터링을 시도 할 때 발생하는 주요 문제는 숨김이 해당 분기의 최신 커밋 인 경우 (브랜치의 것이 아니더라도 head여전히 가장 최근의 하위 항목이기 때문에) 실제로 필터링 할 수 있다는 것입니다. 로그의 전체 분기가 원하는 것이 아닙니다.


2
큰! --tags완전성을 위해 추가하겠습니다 .
cYrus

나는 이것을 확인 --tags하지 않았지만 어떤 태그도 head지점이나 원격의 자손이 될 수 없기 때문에 중복 되는 것으로 의심 됩니다 .
Andrew Marshall

3
방금 시도 : git checkout -b test; 커밋을 추가했습니다. git tag foo; git checkout master; git branch -D test. 태그가 있지만이 없이는 표시되지 않습니다 --tags.
cYrus

2
하나의 작은 추가-당신은 HEAD끝에 추가해야합니다 . 그렇지 않으면 분리 된 HEAD 모드에 있고 다른 참조가 HEAD 커밋을 가리 키지 않는 경우 그래프에 표시되지 않습니다.
mziwisky 2015 년

6

내 별칭 :

[alias]
    l = log --oneline --decorate --graph --exclude=refs/stash

이 경우 숨김을 표시하지 않고 다음 양식을 사용할 수 있습니다.

  • git l 현재 지점
  • git l feature234 특정 지점
  • git l --all 전반적인 역사를 위해

매뉴얼에서 :

--exclude = <glob 패턴>

다음 --all, --branches, --tags, --remotes 또는 --glob이 고려할 것과 일치하는 참조를 포함하지 마십시오.


4
매개 변수의 순서가 중요합니다. --all --exclude=refs/stash는 여전히 숨김을 포함하고 --exclude=refs/stash --all올바르게 제외합니다.
미하일 Burshteyn

4

참고 앤드류의 대답이 숨어 작동하지 않을는 StGit 1) 지점 <branch>.stgit(이 그렇지 않으면 쓰레기 출력은 사용할 수 없게) StGit 버전 0.15에서합니다.

현재 다음 솔루션을 사용합니다.

$ git log --graph --oneline --decorate \
  $(git for-each-ref --format="%(refname)" refs/heads/ refs/remotes/ |
    grep -v "\.stgit$")

1.) StGit ( " St acked Git ")는 Quilt / mq와 같은 기능을 Git에 제공합니다 (예 : 스택에 패치 푸시 / 팝핑).


사용하는 것이 좋습니다 --exclude. 마찬가지로 :git log --graph --exclude=refs/heads/*.stgit --exclude=refs/patches/* --exclude=refs/stash --all
gavenkoa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.