git commit의 --date 매개 변수의 형식은 무엇입니까?
git의 커밋 날짜를 덮어 써야합니다. 모든 문서는 --date 매개 변수를 가리 키지 만 적절한 형식에 대한 단서없이 하나만 남겨 둡니다. 나는 내가 생각할 수있는 모든 순열을 시도했고, 각각에 대해 "치명적 : 유효하지 않은 날짜 형식 :"오류가 발생합니다.
Git 2.6 이상 (2015 년 3 분기)에 새 옵션이 추가되었습니다.
참조 e4f031e 커밋 (2015년 6월 30일을), 및 aa1462c 커밋 , a5481a6 커밋 , b7c1e11 커밋 에 의해 (2015년 6월 25일) 제프 킹 ( peff
) .
(Merged by Junio C gitster
Hamano -- in commit d939af1 , 03 Aug 2015)
"형식"날짜 모드 도입
이렇게하면 형식이
strftime
.
좀 더 유연 할뿐만 아니라 시스템strftime
이 로케일의 선호 형식 (예 : 요일 철자법)에 대해 더 많이 알 수 있다는 것이 주요 이점입니다 .
--date=format:...
형식...
을 시스템에 공급합니다strftime
. 시스템 로케일의 선호 형식으로 날짜를 표시하는 데
사용--date=format:%c
합니다. 형식 자리 표시 자의 전체 목록은 설명서를
참조하십시오strftime
.
Davide Cavestro 는 주석 에서 예제를 제안합니다 .
git commit -m "Test" --date=format:relative:5.hours.ago
원문 답변 (2014 년 중반)
--date
(도입 옵션 02b47cd 커밋 git1.7.0을 위해 12 월 2009 년)는보다 동일한 형식을 사용하여 GIT_AUTHOR_DATE
시험 날짜 형식으로, 96b2d4f 커밋 :
허용되는 다양한 형식을 볼 수 있습니다.
- rfc2822 :
Mon, 3 Jul 2006 17:18:43 +0200
- iso8601 :
2006-07-03 17:18:43 +0200
- 현지:
Mon Jul 3 15:18:43 2006
- 짧음 :
2006-07-03
(1.9.1이 아님, 2.3.0에서 작동) 상대 : 커밋 34dc6e7 참조 :
5.seconds.ago, 2.years.3.months.ago, '6am yesterday'
raw : commit 7dff9b3 (git 1.6.2, 2009 년 3 월) 참조
내부 원시 git 형식 -epoch + 시간대 이후 초
(다른 방법으로 입력 : 'date +"%s %z"
'형식)- 기본:
Mon Jul 3 17:18:43 2006 +0200
2006-07-03 15:18:43을 로컬로 받아들입니까?
예, 작동하며 자동으로 현지 시간대를 사용합니다.
해당 형식으로 나는 그것이 요일 (귀찮게 할 필요가 없습니다Sun
,Mon
등).
날짜 형식은 Documentation / date-formats.txt ( man git commit
) 에 문서화되어 있지 않으며 매우 "인간적으로"구문 분석됩니다.
작동하는 유일한 것은 date.c 에서 소스를 읽고 시도하는 것입니다.
2.3.0에서 VonC에서 언급하지 않은 사항 :
자릿수에 따라 숫자 만 구문 분석됩니다.
2 자리 숫자 : 19YY, YY> = 73 인 경우, 현재 월, 일 및 시간. 그렇지 않으면 오류 또는 현재 날짜.
4 자리 숫자 : YYYY, YYYY> = 1973, <= 2099
> 8 자리에서 약간의 작은 제한 (TODO which?) : UNIX 시간 (1970 년 이후 초)
@<digits> +0000
: UNIX 시간.이것은 UNIX 시간을 직접 입력하는 가장 좋은 방법처럼 보입니다.
2 ** 64-2 (TODO why not -1?)는 커밋 오류를 일으키지 않는 최대 값입니다. 스탬프는 C 길이로 저장됩니다.
git log
2^55
1970 년처럼 매우 큰 값 ( TODO 어디?)을git cat-file -p HEAD
보여 주지만, 올바른 숫자가 저장되었음을 보여 주므로 날짜 변환의 제한처럼 보입니다.보다 큰 경우
2**63 - 1
가장 큰 양의 부호가있는 long은 GitHub로 푸시하려는 시도가date causes integer overflow
. GitHub에서 해당 날짜의 커밋 (GitHub 는 어떤 이유로 인해 정말 큰 날짜를 표시 할 수 없음 )VonC는 이것이 부정적인 날짜를 차단하기 때문에 부끄러운 일이라고 지적했습니다. 1970 이전에 타임 스탬프를 갖도록 git 커밋을 설정할 수 있습니까? 이전 소프트웨어를 Git으로 마이그레이션하는 데 사용할 수 있습니다.
tea
: 오늘 17시 :-)
간단한 예 :
GIT_AUTHOR_DATE='2015-04-19 17:18:43 +0200' GIT_COMMITTER_DATE='2015-04-19 17:18:43 +0200' git commit -m 'Commit message'
참고 URL : https://stackoverflow.com/questions/19742345/what-is-the-format-for-date-parameter-of-git-commit
'Development Tip' 카테고리의 다른 글
사용시기 (0) | 2020.11.18 |
---|---|
SQL Server에서 SQL 삽입으로 작은 따옴표를 벗어나는 위생을 어떻게 방지 할 수 있습니까? (0) | 2020.11.18 |
이 C 프로그램은 두 가지 주요 기능으로 어떻게 컴파일되고 실행됩니까? (0) | 2020.11.18 |
무엇을 사용 : JPQL 또는 Criteria API? (0) | 2020.11.18 |
복사없이 데이터 프레임을 data.table로 변환 (0) | 2020.11.18 |