본문 바로가기
  • 실행력이 모든걸 결정한다
Git & Github

[Git] 저장 취소(2) - git commit, git push / commit 주석 변경

by 김코더 김주역 2021. 4. 6.
반응형

이번 포스팅에서는 지난 포스팅에 이어 commit, push를 취소하는 방법을 설명할 것이며, 기존의 commit 주석을 변경하는 방법도 추가로 다룰 것이다.

 

1. commit, push 취소

순서도가 최종 완성되었다. 물론 화살표에 있는 명령 외에도 많은 방법들이 있다.

 

 

1) 사전 작업

여러분들의 이해를 돕기 위해 필자는 미리 사전 작업을 해놓았다.

 

(1) 작업 내용

textfile.txt에 "first work" 작성 -> git add . -> git commit -m "first work"

이 작업을 first work ~ fifth work까지 총 5번 수행하여 5개의 commit 내역을 추가로 생성함

그 후, git push명령으로 원격 저장소에 5개의 commit 내역을 한꺼번에 반영함

 

(2) 작업 결과

git log 명령어로 commit 내역을 확인할 수 있고,

각 commit에 대한 commit id, 작성자, 날짜, commit 주석을 확인할 수 있다.

그리고 Enter키로 더 많은 내역을 확인할 수 있고, q키로 빠져나올 수 있다.

 

그리고 깃허브의 commit 내역이다.

 

 

2) commit 취소

Local Repository상의 commit을 원하는 만큼 취소하고 Remote Repository에 push하는 방법으로 commit, push을 같이 취소할 수 있다.

 

(1) commit id 복사

위 사전 작업에서 first work~fifth work까지 5개의 commit내역을 남겼는데, 만약 "second work" commit으로 돌아가고 싶다고 하자. 그리고 작업 내용까지 "second work" commit 했을 때로 돌아가고 싶다고 한다면 어떻게 할까?

이 포스팅 맨 위에 첨부한 순서도를 참고하면 git reset --hard 명령을 써야 작업 내용까지 second work으로 돌아갈 수 있다는 사실을 알 수 있다.

 

여러분은 아래와 같이 git reset --hard 뒤에 "second work" commit에 해당하는 commit id를 작성(복붙)하면 된다.

다음 줄과 같이 "HEAD is now at [commit id(축약)] [commit 주석]" 문구가 뜬다면 정상적으로 되돌아간 것이다.

실제로 textfile의 내용도 바뀌었다.

 

git log명령으로 commit 내역을 조회해보았다.

commit 내역은 second work까지만 나오고 그 이후의 내역은 모두 지워졌음을 알 수 있다.

 

 

3) push 취소

이제 Remote Repository(깃허브)에도 push해줘서 Local Repostory상의 commit 내역에도 변동이 있었음을 알려야 한다.

commit 취소로 인하여 Local Repository와 Remote Repository의 동기화가 풀렸기 때문에 강제 push를 해야 한다.

강제 push는 git push에 -f옵션을 붙이면 된다.

 

깃허브에서도 "second work" commit 이후의 commit 내역은 모두 삭제되었다.

 

 

2. 커밋 주석 변경

git commit --amend 명령으로 최근 commit의 주석 내용을 변경할 수 있다.

 

위 명령을 입력하면 이렇게 에디터 창이 나온다. 맨 윗줄에는 기존 주석 내용이 나온다.

 

a키를 눌러 편집모드로 바꾸고,

 

기존 주석 내용 "second work"을 "second work(kimjooyeok)"으로 변경하고,

Esc키를 눌러 편집 모드를 빠져나와서 ":wq!" (변경한 내용을 저장 후 에디터에서 나감)을 입력하고 Enter을 눌렀다.

 

이렇게 저장 후 에디터를 빠져 나오면 commit이 완료되었다는 문구가 뜬다.

그대로 git push -f 명령으로 원격 저장소에 강제 push해주자.

 

잘 적용 되었다.

반응형

댓글