작성자와 날짜를 포함하는 git 로그에서 가능한 가장 짧은 출력
(적어도) 다음 정보를 사용하여 git 로그 출력을 표시하려면 어떻게 해야 합니까?
* author
* commit date
* change
로그 항목당 한 줄로 압축해 주세요.가능한 가장 짧은 포맷은 무엇입니까?
(비밀(이행)--format=oneline
되어 있지 않습니다
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
그 일을 해냅니다.출력은 다음과 같습니다.
fbc3503 mads Thu Dec 4 07:43:27 2008 +0000 show mobile if phone is null...
ec36490 jesper Wed Nov 26 05:41:37 2008 +0000 Cleanup after [942]: Using timezon
ae62afd tobias Tue Nov 25 21:42:55 2008 +0000 Fixed #67 by adding time zone supp
164be7e mads Tue Nov 25 19:56:43 2008 +0000 fixed tests, and a 'unending appoi
93f1526 jesper Tue Nov 25 09:45:56 2008 +0000 adding time.ZONE.now as time zone
2f0f8c1 tobias Tue Nov 25 03:07:02 2008 +0000 Timezone configured in environment
a33c1dc jesper Tue Nov 25 01:26:18 2008 +0000 updated to most recent will_pagina
stackoverflow 질문: "git log output like svn ls -v"에서 영감을 얻어 필요한 정확한 파라미터를 추가할 수 있다는 것을 알게 되었습니다.
하지 않음) 을 사용합니다.--date=short
다음과 같이 합니다.
%h
= commit hash = "commit hash
%x09
9의 )= 탭(코드 9의 문자)
%an
= = =子名
%ad
=옵션)= 작성자 날짜(형식존중 --date=옵션)
%s
= = 제제
Vivek의 코멘트로 kernel.org/pub/software/scm/git/docs/git-log.html (PRITY FORMATS 섹션)에서 입수.
다음 두 가지 .gitconfig 설정을 사용합니다.
[log]
date = relative
[format]
pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset
%이 날짜는 %ad로 수 .--date
.config [ log ]그래서.저는 상대적인 날짜가 언제 커밋되었는지 바로 알 수 있기 때문에 좋아합니다.을 사용하다
6c3e1a2 2 hours ago you@me.com lsof is a dependency now.
0754f18 11 hours ago you@me.com Properly unmount, so detaching works.
336a3ac 13 hours ago you@me.com Show ami registration command if auto register fails
be2ad45 17 hours ago you@me.com Fixes #6. Sao Paolo region is included as well.
5aed68e 17 hours ago you@me.com Shorten while loops
물론 모두 컬러이기 때문에 로그 라인의 여러 부분을 쉽게 구분할 수 있습니다. 입력 시 .git log
[format] 섹션 때문입니다.
2014 UPDATE : git이 패딩을 지원하게 되었기 때문에 위 버전에 대한 멋진 수정이 있습니다.
pretty = format:%C(yellow)%h %Cblue%>(12)%ad %Cgreen%<(7)%aN%Cred%d %Creset%s
오른쪽은 상대 날짜와 왼쪽은 커밋 이름을 정렬합니다. 즉, 보기 쉬운 기둥 모양입니다.
스크린샷2016년 업데이트: GPG 커밋 서명이 중요해지고 있기 때문에 서명 검증을 포함한 버전으로 이 투고를 업데이트하려고 합니다(스크린샷에서는 커밋 직후의 자홍색 문자입니다).플래그의 간단한 설명:
%G?: 정상적인(유효한) 시그니처의 경우 "G", 잘못된 시그니처의 경우 "B", 알 수 없는 시그니처의 경우 "U", 시그니처가 없는 경우 "N"을 표시합니다.
기타 변경사항은 다음과 같습니다.
- tty 이외의 출력(그립 등에 유용)일 경우 색상이 삭제됩니다.
git log -g
재로그하다- 2개의 패런을 refname에 저장하고 마지막에 배치합니다(컬럼 정렬 유지).
- 긴 g상 if if((((((((((((((((((((((((:
3 years, 4..
) - ppl의 수 단, ppl의 경우는 해 주세요).
%<(7,trunc)
또는 git .mailmap 기능을 체크하여 커밋 이름을 단축할 수 있습니다.
설정은 다음과 같습니다.
pretty = format:%C(auto,yellow)%h%C(auto,magenta)% G? %C(auto,blue)%>(12,trunc)%ad %C(auto,green)%<(7,trunc)%aN%C(auto,reset)%s%C(auto,red)% gD% D
전체 열 정렬은 (바람직하게) 쓸모없는 일부 문자를 희생시키면서 훨씬 더 잘 보존됩니다.만약 개선 사항이 있으시면 자유롭게 편집해 주십시오.메시지 색상은 커밋 서명 여부에 따라 달라지고 싶지만, ATM은 불가능할 것 같습니다.
스크린샷자유롭게 사용하세요.
git log --pretty="%C(Yellow)%h %C(reset)%ad (%C(Green)%cr%C(reset))%x09 %C(Cyan)%an: %C(reset)%s" --date=short -7
해 주세요.-7
일곱 살
봐주세요.
git log --pretty=format:"%H %an %ad"
--date=
git log --pretty=format:"%H %an %ad" --date=short
된 git에일리어스 사용(「git」)hs
(이렇게 하면)
git hs
명령으로 한 번 생성:
git config --global alias.hs "log --pretty='%C(yellow)%h %C(cyan)%cd %Cblue%aN%C(auto)%d %Creset%s' --graph --date=relative --date-order"
%h
= commit hash = "commit hash
%cd
= 커밋 날짜(형식 존중 옵션)
%aN
= 작성자 이름(필수)
%d
= = 참조명
%s
= = 제제
Git 0 Git v2.13.0--decorate
는 디폴트로 유효하게 되어 있습니다.
참고 자료:
tig는 주요 오픈소스 *nix 디스트리뷰션에서 사용할 수 있는 git log 명령어 대신 사용할 수 있습니다.
debian 또는 ubuntu에서 다음과 같이 설치하고 실행합니다.
$ sudo apt-get install tig
mac 사용자의 경우 rescue로 이동합니다.
$ brew install tig
(인스톨 됩니다.
$ tig
(로그는 다음과 같이 호출기로 표시되며, 현재 커밋의 해시는 하단에 표시됩니다.)
2010-03-17 01:07 ndesigner changes to sponsors list
2010-03-17 00:19 rcoder Raise 404 when an invalid year is specified.
2010-03-17 00:06 rcoder Sponsors page now shows sponsors' level.
-------------------------- skip some lines ---------------------------------
[main] 531f35e925f53adeb2146dcfc9c6a6ef24e93619 - commit 1 of 32 (100%)
마크다운은 텍스트 색칠을 지원하지 않으므로 1열: 파란색, 2열: 녹색, 3열: 기본 텍스트 색상을 상상해 보십시오.마지막 줄 강조 표시.Q 또는 Q를 눌러 종료합니다.
tig
에지가 울퉁불퉁하지 않은 컬럼을 정렬합니다.ascii 탭(%x09)에서는 보증할 수 없습니다.
짧은 날짜 형식의 경우 대문자 D를 누릅니다(참고: 소문자 d는 다른 보기를 엽니다).다음을 추가하여 영구적으로 구성show-date = short
~/.twrc; (;)[tig]
~/.disconfig: " " " ~ ~ ~ 。
전체 변경 내용을 보려면:
- Enter 키를 누릅니다.창 하부에 하위 창이 열립니다.
- k, j 키를 사용하여 하위 페인으로 변경 내용을 스크롤합니다.
- 동시에 위 키와 아래 키를 사용하여 커밋에서 커밋으로 이동합니다.
tig는 git와는 별개이고 *nix에 따라 다르기 때문에 아마 윈도우에 설치하려면 sygwin이 필요할 것입니다.단, 페도라의 경우 install 명령어는 다음과 같습니다.$ su
,(enter root password)
,# yum install tig
. 무료 체험을 위해% su
,(enter root password)
,# pkg_add -r tig
.
덧붙여서, tig는 로그를 간단하게 보는 것 이상으로 적합합니다:스크린샷과 매뉴얼
git log --pretty=format:'%h %ad %s (%an)' --date=short
또는
git log --pretty=format:'%h %ad %s | %an' --date=short
...상기 cdunn2001의 답변에 대한 설명:Jesper 및 nittl에 따라 작성자의 e=메일을 잃어버리고 작성자의 이름만 포함하지만 읽기 쉽도록 일정한 폭의 열에 출력을 유지하려는 cdunn2001의 아이디어와 일치합니다(훌륭한 아이디어).그러나 작성자 이름에 대해 별도의 왼쪽 맞춤 열 대신 명령어 끝에 있는 플래그를 괄호로 감싸거나 파이프로 오프셋합니다.(출력을 읽을 때 시각적으로 도움이 되는 문자일 수 있습니다.)다만, 출력과 디렉토리등의 혼동을 줄이기 위해서, 백슬래시 또는 포워드슬래시를 피하는 것이 타당할 수 있습니다).
샘플 출력:
6fdd155 2015-08-10 Fixes casting error in doSave | John Doe
c4f4032 2015-08-10 Fix for IE save. Add help button. | Jane
29a24a6 2015-08-10 Fixes bug in Course | Mac
사전 정의된 git 별칭을 사용합니다.
$ git work
명령으로 한 번 생성:
$ git config --global alias.work 'log --pretty=format:"%h%x09%an%x09%ad%x09%s"'
https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases
또는 그래프로 더 색칠:
$ git config --global alias.work 'log --pretty=format:"%C(yellow)%h %ar %C(auto)%d %Creset %s , %Cblue%cn" --graph --all'
git log --pretty=format:'%h %ad %s%x09%ae' --date=short
결과:
e17bae5 2011-09-30 Integrate from development -> main nixon@whitehouse.gov
eaead2c 2011-09-30 More stuff that is not worth mentioning bgates@apple.com
eb6a336 2011-09-22 Merge branch 'freebase' into development jobs@nirvana.org
일정한 폭의 것이 우선입니다.가장 중요하지 않은 부분인 전자 메일 도메인은 마지막으로 필터링하기 쉽습니다.
내가 준비한 커밋을 푸시할 준비가 된 상태로 표시하려면
git log remotes/trunk~4..HEAD --pretty=format:"%C(yellow)%h%C(white) %ad %aN%x09%d%x09%s" --date=short | awk -F'\t' '{gsub(/[, ]/,"",$2);gsub(/HEAD/, "\033[1;36mH\033[00m",$2);gsub(/master/, "\033[1;32mm\033[00m",$2);gsub(/trunk/, "\033[1;31mt\033[00m",$2);print $1 "\t" gensub(/([\(\)])/, "\033[0;33m\\1\033[00m","g",$2) $3}' | less -eiFRXS
출력은 다음과 같습니다.
ef87da7 2013-01-17 haslers (Hm)Fix NPE in Frobble
8f6d80f 2013-01-17 haslers Refactor Frobble
815813b 2013-01-17 haslers (t)Add Wibble to Frobble
3616373 2013-01-17 haslers Add Foo to Frobble
3b5ccf0 2013-01-17 haslers Add Bar to Frobble
a1db9ef 2013-01-17 haslers Add Frobble Widget
여기서 첫 번째 열은 노란색으로 표시되며, parentesis의 'H' 'm' 및 't'는 HEAD, master 및 trunk를 나타내며 일반적인 "--decorate" 색상으로 표시됩니다.
다음은 줄 바꿈을 보여줌으로써 동작을 볼 수 있습니다.
git log remotes/trunk~4..HEAD --date=short
--pretty=format:"%C(yellow)%h%C(white) %ad %aN%x09%d%x09%s"
| awk -F'\t' '{
gsub(/[, ]/,"",$2);
gsub(/HEAD/, "\033[1;36mH\033[00m",$2);
gsub(/master/, "\033[1;32mm\033[00m",$2);
gsub(/trunk/, "\033[1;31mt\033[00m",$2);
print $1 "\t" gensub(/([\(\)])/, "\033[0;33m\\1\033[00m","g",$2) $3}'
다음 항목에 대해 "단계적"으로 분류했습니다.
git config alias.staged '!git log remotes/trunk~4..HEAD --date=short --pretty=format:"%C(yellow)%h%C(white) %ad %aN%x09%d%x09%s" | awk -F"\t" "{gsub(/[, ]/,\"\",\$2);gsub(/HEAD/, \"\033[1;36mH\033[00m\",\$2);gsub(/master/, \"\033[1;32mm\033[00m\",\$2);gsub(/trunk/, \"\033[1;31mt\033[00m\",\$2);print \$1 \"\t\" gensub(/([\(\)])/, \"\033[0;33m\\\\\1\033[00m\",\"g\",\$2) \$3}"'
(그것보다 더 쉬운 방법은 없을까?탈출할 필요가 있는 것을 알아내는 것은 조금 까다로웠습니다.
git --no-pager log --pretty=tformat:"%C(yellow)%h %C(cyan)%ad %Cblue%an%C(auto)%d %Creset%s" --graph --date=format:"%Y-%m-%d %H:%M" -25
에일리어스를 사용합니다.
alias gitlog='git --no-pager log --pretty=tformat:"%C(yellow)%h %C(cyan)%ad %Cblue%an%C(auto)%d %Creset%s" --graph --date=format:"%Y-%m-%d %H:%M" -25'
차이점:tformat과 isodate를 사용하여 초와 시간대를 사용하지 않습니다. --no-pager를 사용하면 색상이 표시됩니다.
전술한 모든 제안은%s
제목 자리 표시자.사용하는 것을 추천합니다.%B
왜냐면%s
포맷을 지정하면 새로운 행이 유지되고 여러 행의 커밋메시지가 찌그러져 표시됩니다.
git log --pretty=format:"%h%x09%an%x09%ai%x09%B"
git log --pretty=snowledge를 시도하면 다음과 같이 표시됩니다.- 작성자:작성자 날짜: 커밋:커밋 날짜:
이게 도움이 됐으면 좋겠다.
프로젝트 폴더에서 실행:
$ git log --pretty=format:"%C(yellow)%h %ar %C(auto)%d %Creset %s , %Cblue%cn" --graph --all
필요에 따라서, 다음의 행을 ~/.gitconfig 에 추가합니다.
[alias]
...
list = log --pretty=format:\"%C(yellow)%h %ar %C(auto)%d %Creset %s, %Cblue%cn\" --graph --all
파일 또는 폴더를 지정하려면 마지막에 경로를 추가하십시오.
%ad
= (option) = 작성자 날짜 (형식존중 --date=옵션)--date=raw
에, 에폭(1970-01-01 00:00:00 UTC) 이후의 날짜(초단위)와 스페이스, 다음으로 타임존을 UTC 참조로부터의 오프셋으로 나타냅니다.
git log -1 --pretty=format:"%ad" --date=raw path/to/your/folder
이게 당신이 원하는 것 같아요.
git log --pretty=" %C(reset)%ad %C(Cyan)%an: %C(reset)%s"
(개인 메모에서는 항상 commit 해시를 사용해야 합니다.)
언급URL : https://stackoverflow.com/questions/1441010/the-shortest-possible-output-from-git-log-containing-author-and-date
'programing' 카테고리의 다른 글
자바의 슬라이스 문자열 (0) | 2023.04.12 |
---|---|
UIImage를 90도 회전시키는 방법 (0) | 2023.04.12 |
VBA를 사용하여 Excel의 표를 참조하려면 어떻게 해야 합니까? (0) | 2023.04.12 |
UILabel - 텍스트에 맞게 레이블 크기를 자동 조정하시겠습니까? (0) | 2023.04.12 |
Common Table Expression(CTE; 공통 테이블 표현)을 사용하는 경우 (0) | 2023.04.07 |