명령 줄에 분기 계층을 표시하는 방법이 있는지 궁금합니다. 예를 들어 다음 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
로그 기록 트리를 가져 오기 위해을 사용해야 합니다.
답변
답변
그것은 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
.