본문 바로가기
GIT

Github 커밋 조작하기, 날짜 변경, 잔디밭 채우기

by chan10 2021. 2. 28.

GitHub에서는 커밋에 따라 활동 이력을 시각적으로 표시해 줍니다.

날짜 별로 초록색을 심어 표시하며 색깔이 진할수록 커밋의 개수가 많다는 의미입니다.

 

1일 1커밋을 위해 GitHub 잔디밭 관리를 신경 쓰는데 가끔 커밋을 놓치는 깜빡할 때가 있어요 ㅜㅜ

이럴 때 git 커밋의 히스토리를 조작하여 과거에 커밋을 올린 것 처럼 할 수 있습니다!!!

 

 

1. 이력을 조작할 GitHub의 repository를 받습니다.

   (이미 로컬저장소와 연동이 되어있는 상태라면 해당 과정은 건너뛰어도 됩니다~!!)

git clone 명령어 사용

 

2. 이력을 변경할 커밋의 해시값을 확인합니다.

   git log 명령어를 입력하여 변경하고 싶은 커밋을 찾아줍니다.

git log 출력 화면

여기서 주목!!! 해시 코드 값을 실제 변경할 커밋의 값을 복사해도 되지만 

좀 더 작업의 편의를 위해 이전 커밋(사진의 점선)의 해시 값을 복사합니다.  (이유는 아래에)

 

3. 복사한 해시 코드로 이력을 수정할 커밋들을 선택합니다.

복사한 해시코드 값을 넣어주고 엔터를 입력하면 에디터가 촤르륵 나옵니다.

 

에디터 위쪽에 커밋 목록이 있는데 이 커밋은 우리가 입력한 커밋의 이후 커밋이 표시됩니다.

2번 과정에서 변경할 커밋의 이전 값을 복사한 이유가 여기 있는 것이죠~!!

변경할 커밋이 목록에 나오기에 변경할 커밋의 pick -> edit로 수정만 하면 됩니다!!!

(i를 눌러 INSERT모드로 진입한 후에 편집이 가능합니다.)

위 사진처럼 edit으로 수정이 완료되었다면 esc + wq를 입력하여 저장 후 에디터를 빠져나옵니다.

 

4. 에디터를 빠져나왔다면 변경을 원하는 날짜를 입력해줍니다.

시간이 바뀐것이 확인되었다면 git rebase --continue를 입력하여 변경사항을 적용해줍니다.

edit이 여러 개 일 경우 위 과정을 반복해주면 됩니다.

 

5. 마지막으로 GitHub와 연동!!

강제 푸시를 이용하여 GitHub와 연동을 시켜주면 끝!!

아무래도 이력을 조작 하는거다 보니 일반 push명령어로는 안되고 강제 푸시를 해야 올라갑니다.

완료하고 Github에서 확인해보면 해당 날짜에 이렇게 커밋이 생긴 것을 볼 수 있습니다.