Git
[Git] - 깃허브(Github) 커밋(Commit) 날짜 변경
nam_ji
2025. 1. 23. 09:28
깃허브 커밋 날짜 변경 (이전 또는 지정)
커밋이란?
- 깃 커밋은 버전 관리 시스템인 깃에서 현재 작업 내용을 저장하는 과정을 의미합니다.
- 커밋은 코드의 특정 상태를 스냅샷처럼 기록하며, 이를 통해 프로젝트의 변경 이력을 관리하고 추적할 수 있습니다.
커밋 날짜 변경
1. 어제 날짜로 커밋하기
- 커밋을 아직 하지 않은 상태라면 다음과 같이 git commit --date "1 day ago" -m "커밋 메시지"를 작성해주면 하루 전의 오늘 날짜로 커밋이 됩니다.
- 여기서 1 day ago에서 1의 자리에 2로 넣어주면 2일 전 3을 넣어주면 3일 전 이렇게 작성할 수 있습니다.
-
git commit --date "1 day ago" -m "커밋 메시지"
2. 특정 날짜로 커밋하기
- 위와 같이 --date를 작성하고 다음은 "" 해당 기호 안에 원하는 특정 날짜(요일 일 월 년도 시:분:초 KST) 형식의 데이터를 넣어주고 나머지는 commit 명령어와 동일합니다.
- 예시로
-
git commit --date "Mon 30 Jan 2025 09:00:00 KST" -m "커밋 메시지" git commit --date "요일 일 월 년 시:분:초 KST" -m "커밋 메시지"
- 위와 같이 작성하면 되고 요일과 월은 약자를 써야 합니다.
3. 최근 커밋 날짜 변경하기
- 최근 커밋의 날짜 변경은 --amend와 --no-edit을 활용하여 변경할 수 있습니다.
- --amend는 최근 커밋의 수정사항을 적용하여 새로운 커밋을 만드는 메시지 입니다. (이전 커밋을 덮어쓴다고 이해하면 쉽습니다.)
- 그리고 --no-edit은 이전 커밋 메시지를 수정하지 않는다는 뜻입니다.
- --amend와 --no-edit을 활용한 명령어 (--amend 명령어로 이전 커밋을 가져오고 --no--edit 명령어가 있기 때문에 커밋 메시지 없이 작성합니다. - 커밋 메시지는 이전 커밋 메시지 그대로 가져가고 날짜만 변경됩니다.)
-
# 최근 커밋을 어제의 현재 시간으로 변경하기 git commit --amend --no-edit --date "1 day ago" # 최근 커밋을 특정 날짜, 시간으로 변경하기 git commit --amend --no-edit --date "Mon 30 Jan 2025 09:10:00 KST"
-
- 이번에는 --no--edit을 제외한 명령어 입니다.
-
# 최근 커밋을 어제의 현재 시간으로 변경하기 git commit --amend --date "1 day ago" -m "커밋 메시지" # 최근 커밋을 특정 날짜, 시간으로 변경하기 git commit --amend --date "Mon 30 Jan 2025 09:10:00 KST" -m "커밋 메시지"
-
- 이렇게 커밋 메시지를 작성해줘야 합니다.
4. 특정 커밋 날짜 수정하기
- 이미 커밋이 많이 이루어진 상태에서는 다른 방법을 사용해야 합니다.
- amend 명령어는 이전 커밋 정보만을 가져오기 때문에 위 방법으로 해결할 수 없습니다.
- 터미널에 git log 명령어를 입력하면 아래 사진처럼 출력될 것입니다.
- 엔터를 이용하여 지금까지의 commit 이력을 확인할 수 있고 원하는 커밋을 선택하여 이전으로 rabase 시켜줘야 합니다.
- 원하는 커밋을 선택하는 방법은 commit 옆에 해시값이 나올텐데 그 값을 복사하는 방법과 HEAD 명령어를 사용하는 방법이 있습니다.
-
# 커밋 메시지 5로 이동하기 위해 git rebase -i 뒤에 4의 해시값을 입력 git rebase -i <해시값> # 가장 최신 커밋부터 2칸 뒤인 커밋을 선택하는 명령어 git rebase -i HEAD~2
-
- 해당 명령어를 입력하면
- git rebase -i <해시값>
- git rebase -i HEAD~1
- 위와 같은 창이 나오면 단축키 i를 눌러 -- INSERT -- 라는 명령어가 나오면 수정할 수 있습니다.
- 수정 가능한 상태가 되면 가장 상단에 pick 부분을 edit으로 변경하고 단축키 [ESC]를 누르고 :wq를 입력하여 빠져나옵니다.
- 이후 작업은 앞에서 했던 것처럼
-
git commit --amend --no-edit --date "Mon 01 Jan 2025 00:00:00 KST"
- 위 명령어 입력 후 마지막으로
-
git rebase --continue
- 해당 명령어를 입력하면 됩니다.
- git rebase --continue 명령어는 방금 커밋 수정을 완료했음을 알려주는 명령어 입니다.
- 혹시 중간에 실수가 있어 취소하고 싶을 때에는 git rebase --abort를 입력하여 취소할 수 있습니다.