Git 로그 날짜 형식 변경 방법
Git 내의 마지막 커밋을 표시하려고 하는데, 날짜가 특별한 형식으로 필요합니다.
pretty 포맷 ▁▁that▁▁know이형을 알고 있습니다.%ad
을 합니다.--date
한 형식, 단하의--date
제가 찾을 수 있는 형식은 "짧은"입니다.다른 사용자와 다음과 같은 사용자 지정을 만들 수 있는지 여부를 알고 싶습니다.
git -n 1 --date=**YYMMDDHHmm** --pretty=format:"Last committed item in this release was by %%an, %%aD, message: %%s(%%h)[%%d]"
▁▁addition--date=(relative|local|default|iso|iso-strict|rfc|short|raw)
사용자가했듯이 사용자 .
--date=format:'%Y-%m-%d %H:%M:%S' # committer's timezone
--date=format-local:'%Y-%m-%d %H:%M:%S' # current user's timezone
은 이은다음같결출과력다니합를은과 같은 것을 합니다.2016-01-13 11:32:13
.
참고: 아래에 연결된 커밋을 보면, 이 작업이 수행되려면 적어도 필요할 것으로 생각됩니다.
전체 명령어는 다음과 같습니다.
git config --global alias.lg "log --graph --decorate -30 --all --topo-order --date=format-local:'%Y-%m-%d %H:%M:%S' --pretty=format:'%C(cyan)%h%Creset %C(black bold)%ad%Creset%C(auto)%d %s'"
문서에서 이것을 찾을 수 없었기 때문에(누군가가 어디서 찾아야 하는지 알고 있다면 의견을 말해주세요) 원래 시행착오를 통해 자리 표시자를 찾았습니다.
이에 대한 문서를 검색하는 과정에서 Git 자체에 대한 커밋을 발견했습니다. 이 커밋은 형식이 직접 제공된다는 것을 나타냅니다.strftime
중strftime
찾은 자리 표시자가 나열된 자리 표시자와 일치합니다.
자리 표시자에는 다음이 포함됩니다.
%a Abbreviated weekday name
%A Full weekday name
%b Abbreviated month name
%B Full month name
%c Date and time representation appropriate for locale
%d Day of month as decimal number (01 – 31)
%H Hour in 24-hour format (00 – 23)
%I Hour in 12-hour format (01 – 12)
%j Day of year as decimal number (001 – 366)
%m Month as decimal number (01 – 12)
%M Minute as decimal number (00 – 59)
%p Current locale's A.M./P.M. indicator for 12-hour clock
%S Second as decimal number (00 – 59)
%U Week of year as decimal number, with Sunday as first day of week (00 – 53)
%w Weekday as decimal number (0 – 6; Sunday is 0)
%W Week of year as decimal number, with Monday as first day of week (00 – 53)
%x Date representation for current locale
%X Time representation for current locale
%y Year without century, as decimal number (00 – 99)
%Y Year with century, as decimal number
%z, %Z Either the time-zone name or time zone abbreviation, depending on registry settings
%% Percent sign
다른 사람들은 (출신자)입니다.git help log
):
--date=(relative|local|default|iso|rfc|short|raw)
Only takes effect for dates shown in human-readable format,
such as when using "--pretty". log.date config variable
sets a default value for log command’s --date option.
--date=relative shows dates relative to the current time, e.g. "2 hours ago".
--date=local shows timestamps in user’s local timezone.
--date=iso (or --date=iso8601) shows timestamps in ISO 8601 format.
--date=rfc (or --date=rfc2822) shows timestamps in RFC 2822 format,
often found in E-mail messages.
--date=short shows only date but not time, in YYYY-MM-DD format.
--date=raw shows the date in the internal raw git format %s %z format.
--date=default shows timestamps in the original timezone
(either committer’s or author’s).
제가 아는 사용자 지정 형식을 만드는 내장된 방법은 없지만, 셸 매직을 사용할 수 있습니다.
timestamp=`git log -n1 --format="%at"`
my_date=`perl -e "print scalar localtime ($timestamp)"`
git log -n1 --pretty=format:"Blah-blah $my_date"
여기서 첫 번째 단계는 밀리초의 타임스탬프를 제공합니다.두 번째 줄을 원하는 대로 타임스탬프 형식으로 변경할 수 있습니다.는 이예는다음과유것제다니공합을사한과 비슷한 것을 .--date=local
날이 저물어서
그리고 매번 입력하지 않고 영구적인 효과를 원한다면 시도해 보십시오.
git config log.date iso
또는 이 계정의 모든 Git 사용에 영향을 미치려면
git config --global log.date iso
오랜 시간이 지난 후에 우리가 할 수 있는git log
를 형으로날출짜력니 합니다.YYYY-MM-DD
에 효과가 있는 방법으로less
과 같은 형식을 : 저는다같생습냈니다각해식형을은음과:.
%ad%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08
와 --date=iso
.
이렇게 하면 ISO 형식(긴 길이)으로 날짜를 인쇄한 다음 백스페이스 문자(0x08)를 14배 인쇄하여 YYY-MM-DD 부분 이후의 모든 것을 효과적으로 제거합니다.예:
git log --date=iso --pretty=format:'%ad%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%aN %s'
이것은 다음과 같은 것을 제공합니다.
2013-05-24 bruno This is the message of the latest commit.
2013-05-22 bruno This is an older commit.
...
한은 제가한일이붙별만것다입라는 별명을 을 만든 입니다.l
위의 형식에 몇 가지 수정 사항이 있습니다.왼쪽에는 커밋 그래프가 표시되고, 그 다음에는 커밋의 해시가 표시되며, 그 다음에는 날짜, 짧은 이름, 참조 이름 및 제목이 표시됩니다.별칭은 다음과 같습니다(~/.gitconfig).
[alias]
l = log --date-order --date=iso --graph --full-history --all --pretty=format:'%x08%x09%C(red)%h %C(cyan)%ad%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08 %C(bold blue)%aN%C(reset)%C(bold yellow)%d %C(reset)%s'
저는 같은 것이 필요했고 다음과 같은 것들이 저에게 효과가 있다는 것을 알았습니다.
git log -n1 --pretty='format:%cd' --date=format:'%Y-%m-%d %H:%M:%S'
그--date=format
을 지정합니다. 서 " 날출형지다니"를 지정합니다.--pretty
인쇄할 항목을 나타냅니다.
필드잘기옵사 너 많 저 데 가 않 할 수 있 니 습 다 록 도 지 장 되 라 이 터%x08
를 들어 다음과 같습니다예:
git log --pretty='format:%h %s%n\t%<(12,trunc)%ci%x08%x08, %an <%ae>'
다음과 같습니다.
git log --pretty='format:%h %s%n\t%ci%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08%x08, %an <%ae>'
그리고 눈에는 꽤 쉽게 보입니다.
은, 이 더나은것은, 한예대는서해에것다음, 는입다니사하용을특정이다것▁better입니▁using,▁partic▁still를 사용하는 것입니다.%cd
명예롭게 할 것입니다.--date=<format>
그래서 당신이 원한다면,YYYY-MM-DD
당신은 이것을 할 수 있고 피할 수 있습니다.%<
그리고.%x08
전체:
git log --date=short --pretty='format:%h %s%n\t%cd, %an <%ae>'
저는 방금 이것이 원래 게시물과 관련하여 약간 순환적이라는 것을 알았지만, 다른 사람들이 제가 했던 것과 동일한 검색 매개 변수를 가지고 이곳에 도착할 경우를 대비하여 남겨두겠습니다.
다음 사항에 유의하십시오.date=iso
형식: 정확하지 않습니다.ISO 8601.
Git 2.2.0(2014년 11월)은 비트 볼리()bbolli
의 커밋 "466fb67"을 참조하십시오.
pretty: 엄격한 ISO 8601 날짜 형식 제공
Git의 "ISO" 날짜 형식은 작은 차이로 인해 ISO 8601 표준을 준수하지 않으며, XML 도구 체인과 같은 ISO 8601 전용 파서로는 구문 분석할 수 없습니다.
은 ""입니다.
--date=iso
다음과 같은 방식으로 ISO 8601에서 벗어납니다.
- 한 칸
T
기호 "/"는 "/"입니다.- 시간대와 시간대 사이의 공간
- 시간대와 분 사이에 콜론 없음
커밋 및 작성자 날짜를 표시하는 엄격한 ISO 8601 날짜 형식을 추가합니다.
'를 사용합니다.%aI
discovery'%cI
하고 ' 정자형지및정 ' 를합니다.--date=iso-strict
또는 '--date=iso8601-strict
날짜 형식 이름입니다.
자세한 내용은 이 스레드를 참조하십시오.
date -d @$(git log -n1 --format="%at") +%Y%m%d%H%M
사용 사례에 중요한 경우 이 시간대가 로컬 표준 시간대로 변환됩니다.
2은 Git 2.7(2015년 4분기)을 소개할 입니다.-local
지시로서
이는 다음과 같은 것 외에도 의미가 있다는 것을 의미합니다.
--date=(relative|local|default|iso|iso-strict|rfc|short|raw)
또한 다음과 같은 이점이 있습니다.
--date=(default-local|iso-local|iso-strict-local|rfc-local|short-local)
그-local
는 접사는수없습다니할과 함께 할 수 .raw
또는relative
참조.
이제 로컬 표준 시간대를 사용하여 모든 날짜 형식을 요청할 수 있습니다.봐
- 커밋 99264e9,
- db7bae2를 커밋합니다.
- dc6d782를 커밋합니다.
- 커밋 f3c1ba5,
- 커밋 f95cecf,
- 커밋 4b1c5e1,
- 8f50d26을 커밋합니다.
- 78a8441을 커밋합니다.
- 존
johnkeeping
키핑()에 의해 2df4e29(2015년 9월 3일)를 커밋합니다.
commit add00ba, commit 547ed71 (2015년 9월 3일) by Jeff peff
King ()을 참조하십시오.
(Junio C Hamano에 의해 합병됨 -- -- 커밋 7b09c45, 2015년 10월 5일)
특히 위의 마지막(commit add00ba)은 다음을 언급합니다.
date
만듦새local
날짜 형식에 대한 직교:대분의부"의 은.
--date
모드는 날짜 형식, 즉 어떤 항목을 표시하고 어떤 순서로 표시하는지에 대한 것입니다.
하지만"--date=local
약간 이상한 사람입니다.이는 "일반 형식으로 날짜를 표시하지만 로컬 표준 시간대를 사용합니다"를 의미합니다.
우리가 사용하는 시간대는 실제 형식과 직교하며, "localized iso8601" 등을 사용하지 못할 이유가 없습니다.이 패치는 "를 추가합니다.
local
울필 를드 "로 합니다.struct date_mode
그리고 그것을 떨어뜨립니다.DATE_LOCAL
에서 나온date_mode_type
열형지거 (은그냥금지그))입니다.DATE_NORMAL
플러스local=1
).
은 " 새기은를 " 하능여사용추다있니습수액세할스가자가를 추가하여 할 수 .-local
모드 " 의의날짜예모드임예모(드▁")▁(:짜▁to날("): ")")iso-local
"), 그리고 우리는 "를 유지합니다.local
명가으로의로의"의default-local
이전 버전과의 호환성을 위해.
저는 특별한 형식의 날짜가 필요합니다.
Git 2.21 (Q1 2019)과 함께, 현재 시간에서 얼마나 떨어져 있는지에 따라 출력을 형태화하는 새로운 날짜 --date=human
형식 " "가 도입되었습니다.
"--date=auto
출력이 호출기 또는 터미널로 이동할 때 이 새 형식을 사용할 수 있습니다. 그렇지 않으면 기본 형식입니다.
커밋 110a6a1, 커밋 b841d4f(2019년 1월 29일), 커밋 038a878, 커밋 2fd7c22(2019년 1월 21일)를 Stephen P. 스미스('').
커밋 acdd377(2019년 1월 18일)을 참조하십시오.torvalds
(주니오 C 하마노에 의해 합병됨 -- -- 2019년 2월 7일 위원회 1be에서)
'인간' 날짜 형식 문서 추가
다른 컨텍스트에서 날짜를 쓰는 방법과 유사한 형식으로 날짜 및 시간 정보를 표시합니다.
연도가 지정되지 않은 경우, 독자는 주어진 날짜가 현재 연도임을 추측합니다.중복된 정보를 표시하지 않음으로써 독자는 다른 정보에 집중합니다.
패치는 다음을 실행하는 시스템의 날짜로부터 추론된 정보를 기반으로 상대적인 날짜를 보고합니다.git
명령이 실행될 때의 명령입니다.그 형식이 추론된 정보를 삭제함으로써 인간에게 더 유용하지만, 실제로 그것을 인간으로 만드는 것은 없습니다.
'만약▁'약만▁therelative
되지 않은 에서 ' 짜형식아구을를않은다지음날 '합니(다)사용이되현직'를사용합니다.relative
적절했을 겁니다더하다
human
날짜 형식 테스트.을 할 때
human
참조 날짜와 로컬 컴퓨터 날짜 간의 시간 차이에 따라 여러 필드가 표시되지 않습니다.
- 차이가 1년 미만인 경우에는 연도 필드가 표시되지 않습니다.
- 시간이 하루 미만이면 월과 연도가 표시되지 않습니다.
check_date_format_human 18000 "5 hours ago" # 5 hours ago
check_date_format_human 432000 "Tue Aug 25 19:20" # 5 days ago
check_date_format_human 1728000 "Mon Aug 10 19:20" # 3 weeks ago
check_date_format_human 13000000 "Thu Apr 2 08:13" # 5 months ago
check_date_format_human 31449600 "Aug 31 2008" # 12 months ago
check_date_format_human 37500000 "Jun 22 2008" # 1 year, 2 months ago
check_date_format_human 55188000 "Dec 1 2007" # 1 year, 9 months ago
check_date_format_human 630000000 "Sep 13 1989" # 20 years ago
고요'를 대체합니다.
auto
모드를 '로 설정합니다.auto:
'
'를 추가하는 것 외에도
human
format,에 포맷, 패가었습니가 되었습니다.auto
구성 파일에서 사용자 형식을 지정하는 대체 방법으로 사용할 수 있는 키워드입니다.'를 제거하면 auto''가 됩니다.human
인터페이스를 포맷합니다.를 할 수 이 추가되었습니다.
foo
가 호기를경우는을auto:foo
통사론
러므로그,▁'▁therefore러므로 'auto:human
은 " " " 입니다.human
우리가 호출기를 사용하고 있다면요.
따라서 다음을 수행할 수 있습니다.git config --add log.date auto:human
그리고 당신의 "
git log
사용자가 무언가를 스크립팅하지 않는 한 명령은 사람이 읽을 수 있는 형식을 표시합니다.
Git 2.24 (2019년 4분기)는 코드를 단순화했습니다.
커밋 47b27c9, 커밋 29f4332 (2019년 9월 12일) by Stephen P를 참조하십시오. 스미스('').
(주니오 C 하마노에 의해 합병 -- -- 커밋 36d2fca, 2019년 10월 7일)
'지금'을(를) 날짜 코드로 전달하지 않음
커밋 b841d4f(추가)
human
to test-tool에 형식 , 2019-01-28, Git v2.21.0-rc0) 추get_time()
를 하는 함수$GIT_TEST_DATE_NOW
현재 시간을 재정의하는 환경입니다.
는 더 그 변수를 우더서그해없필변습다니요에 해석할 필요가 .cmd__date()
.그러므로, 우리는 "를 통과하는 것을 멈출 수 있습니다.
now
아무도 사용하지 않기 때문에 날짜 함수를 통해 매개 변수를 아래로 이동합니다.
이전에 전화를 받은 모든 통화자를 확인해야 합니다.now
가 올바르게 .get_time()
.
Git 2.32 (2021년 2분기)로,git log --format=...
(man) "" 자리 표시자들은 배웠습니다.%ah
/%ch
가 요할자표자시를 합니다.--date=human
산출량.
ZeNing adlternative
Hu()의 commit b722d45(2021년 4월 25일)를 참조하십시오.
(주니오 C 하마노에 의해 합병 -- -- 2021년 5월 7일 커밋 f16a466에서)
pretty
사용자 날짜 형식 제공사인 오프 바이: ZeNing Hu
표시자
%ah
그리고.%ch
및 날짜 합니다.--date=human
더 많은 인류 날짜 출력을 제공합니다.
pretty-formats
이제 관리 페이지에 다음 항목이 포함됩니다.
'
%ah
인간 : 자날짜스예타, 일인간저예▁the(일스타,:--date=human
의 옵션
pretty-formats
이제 관리 페이지에 다음 항목이 포함됩니다.
'
%ch
휴먼 : 커터날짜예스, 타일인미간예(▁the일)--date=human
의 옵션
옵션 형식%ai
내가 원했던 것은:
%ai
날짜, 유사 , ISO 8601 유사 형식
--format="%ai"
Bash 및 date 명령을 사용하여 ISO와 유사한 형식에서 원하는 형식으로 변환합니다.org-mode 날짜 형식(및 목록 항목)을 원했기 때문에 다음 작업을 수행했습니다.
echo + [$(date -d "$(git log --pretty=format:%ai -1)" +"%Y-%m-%d %a %H:%M")] \
$(git log --pretty=format:"%h %s" --abbrev=12 -1)
그 결과는 다음과 같습니다.
+ [2015-09-13 Sun 22:44] 2b0ad02e6cec Merge pull request #72 from 3b/bug-1474631
git log -n1 --format="Last committed item in this release was by %an, `git log -n1 --format=%at | awk '{print strftime("%y%m%d%H%M",$1)}'`, message: %s (%h) [%d]"
언급URL : https://stackoverflow.com/questions/7853332/how-to-change-git-log-date-formats
'code' 카테고리의 다른 글
ASP.NET MVC용 reCaptcha를 구현하는 방법은 무엇입니까? (0) | 2023.06.22 |
---|---|
몽고야?수집 또는 유성.컬렉션? (0) | 2023.06.22 |
Excel 상태 표시줄을 팝업하시겠습니까? (0) | 2023.06.22 |
외부 키를 사용하여 .xls 파일을 .sql로 가져오는 방법 (0) | 2023.06.22 |
파이썬 팬더에서 열의 dtype을 확인하는 방법. (0) | 2023.06.22 |