나는 내 컴퓨터에서 Git과 분리하여 놀고 있는데, 모든 브랜치와 커밋의 정신 모델을 유지하는 것이 어렵다는 것을 알았습니다. 나는 내가 git log
어디에서 커밋 히스토리를 볼 수는 있지만 지사를 설명하기 위해 모든 곳에서 사용되는 것으로 보이는 ASCII 맵과 같은 전체 지사 지형을 볼 수있는 방법이 있습니까?
.-A---M---N---O---P
/ / / / /
I B C D E
\ / / / /
`-------------'
누군가가 와서 내 저장소를 가져 오려고하면 정확히 무슨 일이 일어나고 있는지 알아내는 것이 어려울 것입니다.
AccuRev의 스트림 브라우저 의 영향을받는 것 같습니다 …
답변
git log --graph
또는을 사용하십시오 gitk
. (두 가지 모두 수락 --all
하면 현재 분기 대신 모든 분기가 표시됩니다.)
지점 이름과 간단한보기를 보려면 다음을 시도하십시오.
git log --graph --decorate --oneline
답변
나는 보통
git log --graph --full-history --all --pretty=format:"%h%x09%d%x20%s"
색상 포함 (쉘이 배 시인 경우) :
git log --graph --full-history --all --color \
--pretty=format:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s"
다음과 같은 텍스트 기반 표현이 인쇄됩니다.
* 040cc7c (HEAD, master) Manual is NOT built by default
* a29ceb7 Removed offensive binary file that was compiled on my machine and was hence incompatible with other machines.
| * 901c7dd (cvc3) cvc3 now configured before building
| * d9e8b5e More sane Yices SMT solver caller
| | * 5b98a10 (nullvars) All uninitialized variables get zero inits
| |/
| * 1cad874 CFLAGS for cvc3 to work successfully
| * 1579581 Merge branch 'llvm-inv' into cvc3
| |\
| | * a9a246b nostaticalias option
| | * 73b91cc Comment about aliases.
| | * 001b20a Prints number of iteration and node.
| |/
|/|
| * 39d2638 Included header files to cvc3 sources
| * 266023b Added cvc3 to blast infrastructure.
| * ac9eb10 Initial sources of cvc3-1.5
|/
* d642f88 Option -aliasstat, by default stats are suppressed
(당신은 그냥 사용할 수는 git log --format=oneline
있지만 커밋 메시지를 숫자로 묶을 것입니다.
이 명령에 대한 바로 가기를 만들려면 ~/.gitconfig
파일 을 편집 할 수 있습니다.
[alias]
gr = log --graph --full-history --all --color --pretty=tformat:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s%x20%x1b[33m(%an)%x1b[0m"
그러나 주석에 Vociferous 메모가 있기 때문에 그러한 긴 형식 명령은 기억하기 어렵습니다. 일반적으로 ~/.gitconfig
파일에 넣을 수 있으므로 문제가되지 않습니다 . 그러나 구성 파일을 수정할 수없는 원격 시스템에 로그인해야하는 경우 더 간단하지만 더 빨리 버전을 입력 할 수 있습니다.
git log --graph --oneline
답변
일반적으로 파일에 던지는 3 개의 별칭 (및 빠른 사용을위한 4 개의 별칭) 이 ~/.gitconfig
있습니다.
[alias]
lg = lg1
lg1 = lg1-specific --all
lg2 = lg2-specific --all
lg3 = lg3-specific --all
lg1-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)'
lg2-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(auto)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)'
lg3-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset) %C(bold cyan)(committed: %cD)%C(reset) %C(auto)%d%C(reset)%n'' %C(white)%s%C(reset)%n'' %C(dim white)- %an <%ae> %C(reset) %C(dim white)(committer: %cn <%ce>)%C(reset)'
git lg
/ git lg1
다음과 같습니다 :
git lg2
다음과 같이 보입니다 :
와 git lg3
모양이 맘에 :
이 솔루션은 모든 솔루션을 의미하는 것이 아니라 원하는대로 변경, 추가 및 수정하기위한 템플릿입니다. 이것을 사용하려면 다음을 권장합니다.
- 에 추가하십시오
.gitconfig
. - 취향에 맞게 사용자 정의하십시오 (다른 색상 선택, 2 줄 및 3 줄 버전에 대한 다른 줄 배열 등).
- 그런 다음 사본을 Gist 또는 다른 코드 스 니펫 도구에 저장하여 나중에 복사하여 붙여 넣을 수
.gitconfig
있습니다 (또는 물론 도트 파일을 버전 제어) .
참고 : 답변이 stackoverflow.com/questions/1057564/pretty-git-branch-graphs 에서 답변보다 복사되고 개선되었습니다 . 여기서보다 훨씬 적합하기 때문입니다. 역사적인 이유로 다른 질문에 사본을 남겼습니다. 지금 닫히고 답변은 다른 답변으로 참조됩니다.
답변
이 레시피 (git log 또는 gitk 기반)에 --simplify-by-decoration
히스토리의 흥미롭지 않은 선형 부분을 축소하기 위해 추가 할 수 있습니다 . 이를 통해 훨씬 더 많은 토폴로지를 한 번에 볼 수 있습니다. 이제이 옵션 없이는 이해할 수없는 큰 역사를 이해할 수 있습니다!
잘 알려진 것처럼 보이지 않기 때문에 게시해야 할 필요성을 느꼈습니다. 기록 시각화에 대한 대부분의 스택 오버플로 질문에는 나타나지 않으며 원하는 것을 알고 난 후에도 검색하는 데 약간의 시간이 걸렸습니다! 드디어이 데비안 버그 보고서 에서 찾았습니다 . 스택 오버플로에 대한 첫 번째 언급은 Antoine Pelisse의 답변 입니다.
답변
답변
내 시간의 99.999 %가 이력을보고 git lg
있고 0.001 %가입니다 git log
.
유용 할 수있는 두 개의 로그 별칭을 공유하고 싶습니다 (.gitconfig에서 구성).
[Alias]
lg = log --graph --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
hist = log --graph --full-history --all --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
git lg
현재 지점 기록을 볼 수 있습니다.git hist
전체 지사 기록을 볼 수 있습니다.