git 브랜치를 리베이스하는 동안 타임 스탬프 변경


97

커밋의 타임 스탬프가 뒤섞인 순서가되도록 공개하기 전에 브랜치에서 커밋을 재구성했습니다. 차라리 그 사이에 몇 초 만에 모두 오늘이 되길 바랍니다.

분명히이 타임 스탬프도 정확하지 않을 것입니다. 그러나 이것이 공개되는시기이기 때문에 나는 혼합 된 역사보다 시간적으로 그것을 선호합니다.

그렇다면 리베이스하는 동안 새 타임 스탬프를 만들도록 git에게 어떻게 지시합니까?

답변:


134
git rebase --ignore-date

2
게시하기 전에 시도 해봤는데 .. 대화 형으로 해본 적이 없다는 점을 제외하면 그게 트릭일까요? 또한 --committer-date-is-author-date 별칭을 사용해 보셨습니까? --ignore-date가 이후 버전에서 도입되었을 수 있습니다.
Michael Krelin-해커 2010 년

2
예, 비대화 형으로 수행하면 작동합니다. 그러나 항상 rebase와 마찬가지로 첫 번째 커밋은 영향을받지 않습니다.
tarsius

2
@ MichaelKrelin-hacker : 문서에 따르면 --ignore-date이 플래그는 리베이스 커밋의 날짜를 쉽게 변경하기 위해 git am에 전달됩니다 (git-am [1] 참조). --interactive 옵션과 호환되지 않습니다.
Tim

4
@Tim 루트 커밋에는 부모가 없으며이 질문을했을 때 해당 커밋의 날짜도 변경하고 싶었습니다. 이제 우리 --root는 이것을 가능하게합니다.
tarsius

3
Incompatible with the --interactive option. 문서보기
Vlastimil Ovčáčík 2017-06-09

28

필자의 경우 리베이스는 타임 스탬프를 CommitDate 값으로 변경했기 때문에 gitweb에서 몇 달 된 커밋이 4 일 된 것으로 나타났습니다. 정확한 날짜의 마지막 커밋을 찾아서 다음을 수행했습니다.

$ git rebase --committer-date-is-author-date SHA

39
아니, 그렇지 않습니다. 사실 정반대입니다. 문서에서 git rebase: " 이 플래그는 git am쉽게 rebased commits의 날짜를 변경 하기 위해 전달됩니다 ". 에서는 git am그것을 말한다 : --committer-date-is-author-date" ...] 저자 날짜와 같은 값을 사용하여 커미터 날짜 거짓말 사용자를 허용 하면서" --ignore-date" [...]는 같은 값을 이용하여 작성자 날짜 거짓말을 사용자에게 허용 커미터 날짜 ".
Enrico Campidoglio 2016

9

다음과 같은 방법이 있습니다

  1. 일반 리베이스

    git rebase --ignore-date
    
  2. 인터랙티브 리베이스

    git rebase -i master
    git commit --amend --date=now
    git push origin <branch> -f
    
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.