이 GitHub 리포지토리 에서 이것을 보고 있습니다 .
이것은 무엇을 의미 하는가? 어떻게 "7 일 전에 작성"하고 "14 시간 전에 커밋"할 수 있습니까?
commit --date=
. Schwern은 매우 잘 설명합니다.
이 GitHub 리포지토리 에서 이것을 보고 있습니다 .
이것은 무엇을 의미 하는가? 어떻게 "7 일 전에 작성"하고 "14 시간 전에 커밋"할 수 있습니까?
commit --date=
. Schwern은 매우 잘 설명합니다.
답변:
Git은 저자 (코드를 작성한 사람)와 커미터 (저장소에 그것을 저지른 사람)라는 별도의 개념을 가지고 있습니다. 마찬가지로 두 날짜 모두 다른 날짜가있을 수 있습니다. 그들은 일반적으로 동일합니다.
코드를 작성하거나 패치를 제출 한 사람이 패치 제출을 위해 메일 링리스트를 사용하는 프로젝트에서와 같이 저장소에 대한 푸시 액세스 권한이없는 경우에는 주로 다르게 설정하기를 원합니다. 이 경우, 푸시 액세스 할 수있는 사람이 패치 및 실행을 적용 할 것 git commit
중 하나와 함께 --author
하고 --date
스위치 또는 GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL 및 GIT_AUTHOR_DATE 환경 변수를 사용하여 (에 설명 자식 커밋 트리 .
다른 경우는 git cherry-pick
git rebase를 사용하는 것입니다. 커미터는 체리 피킹을하는 사람이고 저자는 원래 커밋의 저자입니다. Git은 저자의 신원과 날짜 설정을 처리합니다.
이 정보는로 저장소에서 볼 수 있습니다 git log --pretty=fuller
.
commit 21550561941b078ea1862b882ec89f26696ff5bb (HEAD, origin/master, origin/HEAD, master)
Author: thiagopnts <thiagopnts@gmail.com>
AuthorDate: Tue Nov 18 14:52:49 2014 -0200
Commit: Thiago Pontes <email@thiago.me>
CommitDate: Tue Nov 25 09:46:58 2014 -0200
open repository url if confirmed, closes #1
git rebase
또한 작성 날짜가 동일하게 유지되는 동안 커밋 날짜가 업데이트됩니다.
이것은 Git이 날짜와 작동하는 방식과 GitHub의 닫는 키워드 로 참조되는 방식 사이의 혼합처럼 보입니다 .
힘내는 커밋 날짜와 저자 날짜를 구분합니다. Pro Git 에서는 차이가 있습니다 .
저자는 원래 저작물을 쓴 사람이고 커미터는 마지막으로 작품을 적용한 사람입니다. 따라서 프로젝트에 패치를 보내고 핵심 멤버 중 하나가 패치를 적용하면 둘 다 크레딧을 얻게됩니다 (저는 저자, 핵심 멤버는 커미터).
따라서 코드 자체가 "7 일 전"(로컬로) 커밋 / 쓰기되었지만 "14 시간 전"까지 코드에 "적용"되거나 패치되지 않았습니다. 메시지.