development

패션처럼 트리에서 자식 분기의 출력

big-blog 2020. 7. 1. 07:34
반응형

패션처럼 트리에서 자식 분기의 출력


지금 "git branch"를 입력하면

내 분기를 임의의 순서로 나열합니다.

내가 선호하는 것은 "git branch"가 fasion과 같은 트리에 내 출력을 나열하면 다음과 같습니다.

master
|-- foo
  |-- foo1
  |-- foo2
|-- bar
  |-- bar4

여기서 foo & bar는 master에서 분기되었습니다. foo1 & foo2는 foo에서 분기되었습니다. bar4는 bar에서 분기되었습니다.

이것이 달성하기 쉬운가?

[명령 줄 유틸리티 만 해당. 이것은 내 zsh / vim 워크 플로우에 맞아야합니다.]


아래에 답 용도 git log:

2009 년에 " 터미널에 Git 트리를 표시 할 수 없습니다 "와 유사한 접근 방식을 언급했습니다 .

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

그러나 내가 사용한 전체 내용은 " git log --graph를 사용하여 태그 이름 및 분기 이름을 표시하는 방법 "(2011)에 있습니다.

git config --global alias.lgb "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --abbrev-commit --date=relative --branches"

git lgb

원문 답변 (2010)

git show-branch --list 당신이 찾고있는 것 (topo order)과 가깝습니다.

--topo-order

기본적으로 브랜치와 커밋은 역순으로 표시됩니다.
이 옵션을 사용하면 토폴로지 순서대로 표시됩니다 (즉, 하위 커밋은 부모에게 표시됩니다).

그러나 도구 git wtf도움이수 있습니다 . 예:

$ git wtf
Local branch: master
[ ] NOT in sync with remote (needs push)
    - Add before-search hook, for shortcuts for custom search queries. [4430d1b] (edwardzyang@...; 7 days ago)
Remote branch: origin/master (git@gitorious.org:sup/mainline.git)
[x] in sync with local

Feature branches:
{ } origin/release-0.8.1 is NOT merged in (1 commit ahead)
    - bump to 0.8.1 [dab43fb] (wmorgan-sup@...; 2 days ago)
[ ] labels-before-subj is NOT merged in (1 commit ahead)
    - put labels before subject in thread index view [790b64d] (marka@...; 4 weeks ago)
{x} origin/enclosed-message-display-tweaks merged in
(x) experiment merged in (only locally)

NOTE: working directory contains modified files

git-wtf 보여줍니다 :

  • 지점이 원격 지점 인 경우 추적 지점 인 경우
  • 기능 분기 인 경우 분기가 비 기능 ( "버전") 분기와 관련되는 방식입니다.
  • 지점이 기능 분기와 관련되는 방식 (버전 분기 인 경우)

그것은 당신이 요구 한 것이 아니지만

git log --graph --simplify-by-decoration --pretty=format:'%d' --all

꽤 잘해. 태그와 원격 브랜치도 보여줍니다. 이것은 모든 사람에게 바람직하지는 않지만 유용하다고 생각합니다. --simplifiy-by-decoration여기에 표시된 심판을 제한하는 큰 요령이 있습니다.

비슷한 명령을 사용하여 로그를 봅니다. gitk사용법 을 완전히 바꿀 수있었습니다 .

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

~ / .gitconfig 파일에 다음 별칭을 포함 시켜서 사용합니다.

[alias]
    l = log --graph --oneline --decorate
    ll = log --graph --oneline --decorate --branches --tags
    lll = log --graph --oneline --decorate --all

편집 : 더 간단한 옵션 플래그를 사용하도록 제안 된 로그 명령 / 별칭을 업데이트했습니다.


다음 예제는 커밋 부모도 보여줍니다.

git log --graph --all \
--format='%C(cyan dim) %p %Cred %h %C(white dim) %s %Cgreen(%cr)%C(cyan dim) <%an>%C(bold yellow)%d%Creset'

라는 도구를 사용할 수 있습니다 gitk.


우분투에서 테스트 :

sudo apt install git-extras
git-show-tree

이것은 여기서 가장 많이 찬성 된 2 가지 답변과 유사한 효과를냅니다.

출처 : http://manpages.ubuntu.com/manpages/bionic/man1/git-show-tree.1.html


Also, if you have arcanist installed, arc flow shows a beautiful dependency tree of upstream dependencies (ie: which were set previously via arc flow new_branch or manually via git branch --set-upstream-to=upstream_branch).


For those who use Github, they have a branch network viewer that seems easier to read

참고URL : https://stackoverflow.com/questions/2421011/output-of-git-branch-in-tree-like-fashion

반응형