FRONT-END/VS & GITHUB

GitHub - git commit log 잔디밭 날짜 변경 하는 방법 자세하게 설명!

서근 2022. 8. 22. 11:14
반응형

GitHub 커밋 날짜 수정

GitHub에 Commit해야할 날짜를 지나쳐 잔디를 채우지 못했을때, 날짜를 조작하여 빈 잔디를 심을수 있는 방법에 대해 초보자도 쉽게 할 수 있을 만큼 자세하게 알아보도록 하겠습니다. 

새로운 Repository 

더보기

Solution

Repository 생성

GitHub의 우측 상단에 + 버튼을 클릭하고 new repository를 눌러 새로운 Repository를 생성해 줍니다.

Repository를 생성할 때 사용자가 원하는 Repository name을 입력 후, Add a README file을 체크해 주고 Create repository버튼을 클릭해 생성해줍니다.

생성된 RepositoryCode 부분을 클릭해 주소를 복사해줍니다.

터미널 실행

이제 Command ⌘ + space-bar 를 눌러 터미널을 열어줍니다.

Git Clone

그리고 터미널에 아래 코드의 양식에 맞게 작성 후, 붙여 넣어 줍니다.

git clone [복사한 repository 주소]  #[ ] 제거 후 repository 주소 입력

저의 경우는 이런 식으로 되겠네요.

git clone https://github.com/Seogun95/commitTest.git

Repo 폴더 이동

레포를 성공적으로 클론 했으니 이제 cd 명령어를 통해 해당 repository 폴더로 이동해줍니다. cd 입력 후 터미널로 폴더를 드래그 앤 드롭 해도 됩니다.

cd [repository이름]  #[ ] 제거 후 repository 이름 입력

Git log hash값 복사

그리고 git log를 입력하고 아래 commit 뒤에 있는 hash값을 복사해줍니다.  

 

여기까지의 진행 상황은 아래 이미지와 같습니다.

날짜 선택

이제 원하는 날짜 시간을 명령어를 입력하여 원하는 날짜에 잔디밭을 심을 수 있습니다. 명령어는 다음과 같습니다.

git filter-branch --env-filter \
    'if [ $GIT_COMMIT = 복사한HASH값 ]
     then
         export GIT_AUTHOR_DATE="Mon Aug 2 13:00:00 2022 +0900"
         export GIT_COMMITTER_DATE="Mon Aug 2 13:00:00 2022 +0900"
     fi'

복사한HASH값에 위에 복사했던 Hash 값을 붙여 넣어주고, export 부분에 원하는 날짜를 영문으로 넣어주시면 됩니다.

 

저의 경우 월요일 / 8월 / 2일 / 13시 / 2022년 으로 시간을 돌려줬습니다.

 
 
 

날짜 입력
원하는 날짜를 입력할때, 영문 요일/월 을 약자로 변경하여 넣어줘야 합니다. https://www.aresearchguide.com/monthdayabb.html 를 참고하여 날짜를 기입할 수 있습니다.

원하는 날짜로 변경이 되었다면 아래처럼 was rewitten이라는 문구가 나타나게 됩니다.

commit message

was rewitten이란 문구가 나타난 후, 아래 명령어를 입력해줍니다.

git pull --allow-unrelated-histories origin main

그러면 다음과 같은 명령어 창이 나오게 되는데, commit message에 임의로 #을 입력 후, 원하는 텍스트를 추가해 줍니다.

TIP
 
 

파일 내용 변경 방법
파일 내용을 변경 하기 위해서는 esc 를 누르고 i 를 누르면 편집이 가능해집니다.
편집 후에는 다시 esc를 누르고 :wq!를 눌러 빠져나올 수 있습니다.

텍스트를 적어줬다면 ESC:wqEnter를 눌러 명령 창에서 빠져나와줍니다.

Push

이제 mainpush만 해주면 끝이 납니다. 

 

명령어는 아래 코드를 복사해서 입력해주기만 하면 됩니다.

git push origin main

GitHub 확인

이제 GitHub 페이지로 돌아가서 입력한 날짜에 정확히 commit 이 됐는지 확인하면 끝입니다.

이미 Push된 커밋 날짜 변경  (추천)

더보기

Solution

이미 pushRepositroy의 커밋 날짜를 변경하는 방법은 다음과 같습니다.

터미널 실행

Repo 폴더 이동

cd명령어를 통해 해당repository폴더로 이동해줍니다. cd 입력 후 터미널로 폴더를 드래그 앤 드롭 해도 됩니다.

cd [repository이름]  #[ ] 제거 후 repository 이름 입력

git log

변경할 레파지토리 폴더로 이동했으면 아래 코드를 입력해줍니다.

git log

커밋 날짜를 변경하기 위해 위 이미지 처럼 commit의 해쉬 값을 복사해줍니다.

TIP
 
 

시간을 변경하려고 하는 커밋의 이전 커밋의 해쉬 값을 복사해야 합니다. 즉, 반드시 커밋이 두 개 이상 되어있어야 합니다.

git rebase -i 

해쉬 값을 복사해서 따로 적어줬다면 아래 코드를 터미널에 입력합니다. git rebase -i 복사한 Hash 값

git rebase -i

이제 아래 이미지 처럼 최상단의 pick부분을 edit으로 변경해줘야 합니다. 

TIP
 
 

파일 내용 변경 방법
파일 내용을 변경 하기 위해서는 esc 를 누르고 i 를 누르면 편집이 가능해집니다.
편집 후에는 다시 esc를 누르고 :wq!를 눌러 빠져나올 수 있습니다.

git commit

이제 커밋을 해주면 됩니다. 원하는 날짜 시간을 명령어를 입력하여 원하는 날짜에 잔디밭을 심을 수 있습니다. 명령어는 다음과 같습니다.

git commit --amend --no-edit --date="원하는 날짜"

원하는 날짜를 영문으로 넣어주시면 됩니다.

 

저의 경우 월요일 / 8월 / 2일 / 13시 / 2022년 으로 시간을 돌려줬는데,Mon Aug 2 13:00:00 2022 +0900이런식으로 되겠네요!

 
 
 

날짜 입력
원하는 날짜를 입력할때, 영문 요일/월 을 약자로 변경하여 넣어줘야 합니다. https://www.aresearchguide.com/monthdayabb.html 를 참고하여 날짜를 기입할 수 있습니다.

rebase와 push

원하는 날짜 입력 후 rebase를 진행합니다.

git rebase --continue

그리고 깃을 Push해주면 끝이납니다.

git push -f origin main


오늘은 이렇게 GitHubCommit해야할 날짜를 지나쳐 잔디를 채우지 못했을때, 날짜를 조작하여 빈 잔디를 심을수 있는 방법에 대해 알아보았습니다.

 

읽어주셔서 감사합니다🤟