'커밋 날짜'를 표시하도록 'git log'를 구성하는 방법


127

대신 git log표시 하도록 구성 하려면 어떻게 해야합니까?commit dateauthor date


25
@Colleen 각 커밋에는 AuthorDate 및 CommitDate ( git show --pretty=fuller HEAD예제 참조) 라는 두 개의 날짜가 연결되어 있습니다. 로컬 개발의 경우 일반적으로 동일하지만 전자 메일 또는 기타 메커니즘을 통해 추가 된 패치의 경우 서로 다를 수 있습니다. 여기서 AuthorDate는 패치가 생성 된 날짜이고 CommitDate는 실제로 저장소에 적용된 날짜입니다.
twalberg

답변:


145

날짜 를 예쁘게 인쇄 하는 몇 가지 옵션 이 있습니다. 아마도 가장 쉬운 방법은 미리 구운 --pretty형식 중 하나를 사용하는 것입니다. git log --pretty=fuller이렇게하면 두 날짜가 모두 표시됩니다. 하나의 날짜 만보고 싶지만 커밋 날짜로 만들려면 git log --format=<some stuff>. 형식 정의에 허용되는 모든 코드 는에 문서화되어 git help log있습니다. 는 날짜 중 하나입니다 커밋 %cd, %cD, %cr, %ct또는 %ci어떤 형식에 따라 당신이 그것을 좋아한다.

자주하고 싶은 일이라면 별칭에 넣거나 보조 스크립트를 작성하여 타이핑 시간을 절약하십시오.


53

커밋 날짜 상대를 사용 --pretty=format하고 사용할 수 있습니다 %cr.

예를 들면 :

$ git log --graph --pretty=format:'%C(auto)%h%d (%cr) %cn <%ce> %s'

사용하기 쉽도록 git에서 별칭을 정의 할 수 있습니다. 내 다음이 있습니다 .gitconfig.

[alias]
# see `git help log` for detailed help.
#   %h: abbreviated commit hash
#   %d: ref names, like the --decorate option of git-log(1)
#   %cn: commiter name
#   %ce: committer email
#   %cr: committer date, relative
#   %ci: committer date, ISO 8601-like format
#   %an: author name
#   %ae: author email
#   %ar: author date, relative
#   %ai: author date, ISO 8601-like format
#   %s: subject
# my awesome git log replacement
lol  = log --graph --pretty=format:\"%C(auto)%h%d%Creset %C(cyan)(%cr)%Creset %C(green)%cn <%ce>%Creset %s\"
# same as above, but ISO date
lold = log --graph --pretty=format:\"%C(auto)%h%d%Creset %C(cyan)(%ci)%Creset %C(green)%cn <%ce>%Creset %s\"
# using build-in standards
lol2 = log --oneline --graph --decorate
# shows branches and their last commits
lol3 = log --all --graph --decorate --oneline --simplify-by-decoration

Linux 또는 유사한 시스템에서는 '큰 따옴표 대신 작은 따옴표 를 사용할 수 있습니다 ".

[alias]
lol = log --graph --pretty=format:'%C(auto)%h%d%Creset %C(cyan)(%cr)%Creset %C(green)%cn <%ce>%Creset %s'

이것으로, git lol또는 다른 변형을 실행 하여 예쁜 출력을 확인하십시오.

다음은 출력입니다 git lol --simplify-by-decoration.

git lol 출력

  • 좋아 보인다. :)
  • lol보다 입력하기 쉽고 log소리도 더 좋습니다.
    • 또한 git log필요한 경우 일반에 액세스 할 수 있습니다.
  • 당신의 눈은 다양한 색상으로 콘텐츠를 빠르게 스캔 할 수 있습니다.
  • 이름과 이메일은 많은 기여자가있는 대규모 프로젝트 / 조직에 매우 유용합니다.
  • 이미 꽤 좋은 해시 / 참조에 대한 기본 색상을 사용합니다.

다음 git lold은 ISO 형식의 날짜 가있는 출력입니다 . 기여자의 시간대를 쉽게 볼 수 있다는 보너스와 함께 정확한 커밋 날짜 / 시간을 확인하는 데 유용합니다.

여기에 이미지 설명 입력

2020-06 편집 : 스크린 샷 추가. (커밋 해시) 및 (참조 이름)에 %C(auto)(자동 / 기본 색상 지정) 을 사용하도록 업데이트되었습니다 . 추가 된 이메일에 추가로 (으로 참여 명).%h%d%cn


1
구문 분석 오류가 발생합니다. git log --graph --pretty=format:\"%C(yellow)%h%Creset%C(cyan)%C(bold)%d%Creset %C(cyan)(%cr)%Creset %C(green)%ce%Creset %s\" bash : 예기치 않은 토큰 근처의 구문 오류`( '
frakman1

2
@ frakman1 — 위의 줄을 터미널에서 실행하려면 "s를 이스케이프 해제해야합니다.
stites

2
수정 된 줄 : git log --graph --pretty = format : "% C (노란색) % h % Creset % C (cyan) % C (bold) % d % Creset % C (cyan) (% cr) % Creset % C (green) % ce % Creset % s "
RedSands

1

필자는이 형식을 선호하고 작성자 이름을 포함하지 않고 실제 커밋 날짜를 포함합니다.

git log --graph --pretty=format:"%C(yellow)%h%x09%Creset%C(cyan)%C(bold)%ad%Creset  %C(green)%Creset %s" --date=short
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.