명령 줄에 분기 계층 구조를 표시 하시겠습니까?
명령 줄에 분기 계층을 표시하는 방법이 있는지 궁금합니다. 예를 들어 다음 git branch
과 같은 출력을 보는 대신을 사용하는 경우 :
* master
joes_work
refactoring
experiment
다음과 같은 출력이 표시됩니다.
* master
joes_work
refactoring
experiment
이렇게하면 특정 분기가 분기 된 분기를 쉽게 확인할 수 있습니다. 트리 구조를 출력하는 특정 명령이 없더라도 어느 분기가 어느 분기에서 왔는지에 대한 정보를 출력하는 명령이 있습니까? perl 스크립트를 사용하여 출력 형식을 지정할 수 있습니다.
sehe의 솔루션은 멋져 보입니다. 여기에는 유사한 정보를 포함하는 것으로 보이는 다른 것이 있고, 형식이 다르며, git log를 사용하므로 커밋 정보도 포함합니다 (브랜치 이름을 무시하고 엉망으로 만들었습니다!).
git log --all --graph --decorate --oneline --simplify-by-decoration
* ae038ad (HEAD, branch2-1) add content to tmp1
| * f5a0029 (branch2-1-1) Add another
|/
* 3e56666 (branch1) Second wave of commits
| * 6c9af2a (branch1-2) add thing
|/
* bfcf30a (master) commit 1
시험
git show-branch
git show-branch --all
출력 예 :
bash$ git show-branch --all
! [branchA] commitA only in branchA
* [branchB] commitB
! [branchC] commitC only in branchC
---------------------
+ [branchA] commitA only in branchA
* [branchB] commitB
+ [branchC] commitC only in branchC
*+ [branchC~1] commitB-1 also in branchC
*+ [branchC~2] commitB-2 also in branchC
+++ [branchC~3] common ancestor
+++ [branchC~4] more common ancestors
@ctcherry의 답변을 완성하고 싶습니다.
커밋을 한 사용자와 날짜도 볼 수있을 때가 마음에 듭니다.
git log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
그러나 이것은 꽤 긴 줄이며 암기하기 어렵 기 때문에 별칭을 사용할 수 있습니다. 터미널에서 이것을 사용해야합니다.
git config --global alias.lg "HERE GOES MY BIG LOG COMMAND LINE"
요약하려면 아래 행을 복사하여 터미널에 붙여 넣으십시오.
git config --global alias.lg "log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
그런 다음 git lg
로그 기록 트리를 가져 오기 위해을 사용해야 합니다.
gitk
command를 입력하고 Enter를 누르기 만하면 됩니다.
나를 gitk
위해 이것에 대한 가장 쉬운 해결책입니다. 명령 모드는 표시되지 않지만 다음과 같은 멋진 UI가 자동으로 채워집니다.
그것은 git의 관점에서 분기가 작동하는 방식이 아닙니다. branch에 커밋하고 분기 a
를 생성 b
하고 거기에서 작업 한 다음 다른 작업을 다시 수행하십시오 a
.
A -- B -- D <-- a
\
\
C <-- b
다른 방법으로했다면 구별 할 수 없습니다.
A -- B -- C <-- b
\
\
D <-- a
내가 생각할 수있는 유일한 방법은 특정 브랜치가 어떤 브랜치에서 시작되었는지 알아 내기 위해 생각할 수있는 유일한 방법은 리플 로그이지만 이것은 신뢰할 수 없습니다 (90 일보다 오래된 항목은 일반적으로 삭제됨).
어떻게이 별명에 대해 .gitconfig
:
[alias]
branch-tree = !cd "$(git rev-parse --git-dir)/refs/heads" && tree
타임 스탬프 tree
와 같이 명령이 지원 하는 항목에 따라 옵션을 제공 할 수도 있습니다 -D
.
참고 URL : https://stackoverflow.com/questions/7623278/showing-branch-hierarchy-at-the-command-line
'code' 카테고리의 다른 글
Firebug에서 "sticky"상태로 마우스를 올릴 수 있습니까? (0) | 2020.10.29 |
---|---|
반환 값으로 저장 프로 시저 호출 (0) | 2020.10.29 |
CSS를 사용하여 요소를 맨 앞으로 가져 오기 (0) | 2020.10.29 |
노드 앱을 실행할 때 bcrypt 유효하지 않은 elf 헤더 (0) | 2020.10.29 |
PostgreSQL에서 카테고리별로 최대 날짜 그룹으로 ID를 선택하는 방법은 무엇입니까? (0) | 2020.10.29 |