git-reflog가 각 항목과 함께 날짜를 표시하는 방법이 있습니까?


305

git-reflog 명령은 기본적으로 각 항목과 함께 날짜를 표시하지 않으므로 이상한 감독으로 생각됩니다. 나는 이것이 매우 도움이 될 것이라고 생각합니다.

각 reflog 항목이 추가 될 때이를 표시하기 위해 사용할 수있는 명령 행 옵션 또는 기타 조정이 있습니까? 맨 페이지는 향후 아니지만 ...

답변:


453

매뉴얼 페이지에 글을 쓸 때 git log, 말 git reflog --pretty=short또는 원하는 다른 옵션을 사용할 수 있습니다

시험

git reflog --date=iso

11
이것은 헤드 번호 (또는 정확한 용어가 무엇이든)를 날짜로 바꿉니다. 둘 다 가질 수 있습니까?
Marco Eckstein

7
@Marco : 사용자 정의 형식을 사용해야 할 것 같습니다 git reflog --format='%C(auto)%h %<|(17)%gd %C(blue)%ci%C(reset) %s'. 나는이 별칭을 추가 한 : github.com/blueyed/dotfiles/commit/...
blueyed

1
@blueyed 똑같지 않음-reflog --date=iso명령의-는 커밋 시간이 아니라 해당 reflog 항목이 생성 된 시간을 보여줍니다. 내가 더 예쁘게 반박하기 위해 사용한 것처럼 당신의 별명에 여전히 감사드립니다.
Johan Henkens

36

다음의 --walk-reflogs변형을 사용할 수 있습니다 git log.

git log -g

이것은 기본적으로 다소 장황하며 다른 것들 중에서 날짜를 인쇄합니다. 표준 --pretty=플래그를 사용하여 형식을 지정할 수 있습니다 .

--pretty=플래그 와 함께 reflog 명령을 직접 사용 하여 출력을 형식화 할 수도 있습니다 .

git reflog --pretty='%cd %h %gd %gs'

위의 형식 %cd으로, 일반 참조 로그 출력의 왼쪽에 커밋 날짜를 표시합니다.


9
%cd, 불행히도 reflog가 가리키는 커밋 날짜를 보여줍니다.
Thanatos

10
git log --walk-reflogs --date=iso방금 내 하루를
Alois Mahdal

7

사용자 정의 형식을 사용해야합니다.

git reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)'

위 형식 %h에서 커밋 해시, %cr상대 커미터 날짜, 참조 %gs로그 주제 및 %s커밋 주제입니다. 다른 가능한 자리 표시 자 에 대해서는 git-log 문서 를 살펴보십시오 . 예를 들어, 사용하는 %ci대신%cr 를 하면 절대 커밋 날짜가 표시됩니다.

사용자 정의 pretty형식을 사용하여 ~ / .gitconfig에 저장 하고 별칭을 통해이를 참조 할 수 있습니다.

[alias]
    rl = reflog --pretty=reflog
[pretty]
    reflog = %C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)

1
이것의 문제 %gd는 같은 날짜를 표시 @{now}하지 않는다는 것입니다. reflog를 검색 할 때 정확한 시간을 아는 것이 정말 중요 할 수 있습니다 (예 : "8:57의 올바른 상태에 있음").
ErikE

2
@ErikE - 그냥 변경 crci각 작업의 전체 타임 스탬프 얻을 :git reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%ci%C(reset) %gs (%s)'
n1k31t4

6

말해 git두 계산, 어떤 형식으로 reflog항목이나 시간 제한 reflog항목, 즉

$ git reflog @{now}

$ git reflog @{0}

내 프로그래머는 내부의 "자연어"날짜를 좋아하지 {}않지만 행복하게도이 기술도 사용할 수 있습니다 --date=iso.
mwfearnley 19

5

참고 git 2.10 (Q3 2016)은로 날짜에 대한 문서를 개선합니다 git reflog.

커밋 642833d 참조 , 1a2a1e8 커밋 (2016 7월 27일), 및 d38c7b2 커밋 , 522259d 커밋 , 83c9f95 커밋 , 2b68222 커밋 에 의해 (2016년 7월 22일) 제프 킹 ( peff) .
도움 : Jeff King ( peff) .
( Junio ​​C gitsterHamano 에 의해 병합 -- 커밋 0d32799 , 2016 년 8 월 8 일)

rev-list옵션이 업데이트됩니다 :

출력의 reflog 부호는 다음과 같이 도시 될 수있다 ref@{Nth}(여기서, Nth또는 역 연대순 reflog의 인덱스) ref@{timestamp}(즉, 엔트리의 타임 스탬프와 함께)은, 몇 가지 규칙에 따라.

그것이 포함됩니다 : -에 대한 업데이 트를 --date=raw:

에포크 (1970-01-01 00:00:00 UTC) 이후의 날짜를 초로 표시 한 다음 공백과 시간대를 UTC (오프라인 +또는 -네 자리 숫자, 첫 두 자리는 시간, 두 번째는 분입니다).
즉, 타임 스탬프의 형식이 strftime("%s %z")) 인 것처럼 보입니다 .
-local옵션 seconds-since-epoch 은 항상 UTC로 측정되는 값 에는 영향을 미치지 않지만 해당 시간대 값을 전환합니다.

그리고 새로운 옵션 : --date=unix

날짜를 유닉스 시대 타임 스탬프 (1970 년 이후의 초)로 표시합니다.
와 마찬가지로 --raw이것은 항상 UTC이므로 -local효과가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.