개발/개발 관련 Contents

[Git] commit 을 잘못했을 때

KD 2021. 6. 18. 00:10
반응형

저는 git을 gui보다는 cli를 즐겨 쓰는 편입니다. 좀 더 직관적이고 제가 다루는 맛이 있기 때문인데 여지껏 사용하면서 cherry pick 제외하고는 gui가 cli보다 편하다고 생각한 적이 없습니다. 아! 그래프 볼때는 git kraken이 짱이긴 합니다 ㅎㅎ

 

무튼! git을 사용하다 보면 가끔 원하지 않는 목록을 add, commit 할 때가 있습니다. 예를 들면

1. gitignore에 node_modules를 추가하지 않았을 때 (지금 바로 이 글을 쓰고 있는 이유)

2. 혹은 lock 파일을 넣었을 때,

3. 해킹 위험이 있는 secret key를 commit 했을 때,

4. commit 내용을 조금 더 추가해서 넣고 싶을 때

5. commit 메시지를 변경하고 싶을 때

 

등이 있는데 이럴 땐 git commit을 되돌리는 

 

git reset, git revert를 사용하면 됩니다.

 

이 두 명령어는 둘다 commit을 되돌리는 거지만 지운 이력을 남기느냐 삭제하느냐의 차이가 있습니다. 저는 reset을 자주 사용합니다. 남들에게 잘못한 것을 들키지 않기 위해서죠.. 하지만 실수로 남의 commit 까지 지우면 아주 무서운(?)일이 발생하니 조심해서 사용하셔야 합니다. 이런 실수를 방지하기 위해서 전 cli가 참 좋습니다.

 

git reset HEAD^

 

명령어를 통해 가장 최근 commit을 reset할 수 있습니다. remote에 push하기 전 상황이라는 것을 참고하시고 git log와 git status 명령어를 통해 상황을 확인해줍니다.

 

 

그림에 lock.json을 추가했었는데 이를 reset을 통해 커밋을 취소하고 gitignore를 수정한 채 다시 commit 하였습니다. 이렇게 쉽게 commit을 취소할 수 있어요!

 

두번째로는 커밋 메시지를 변경하고 싶을 때!

 

git commit --amend

 

을 사용하면 가장 최근에 한 commit 관련 내용들을 수정할 수 있습니다! 어렵지 않으니 그림 설명은 생략할게요.

 

git cli을 사용하면서 쉽게 변경 가능한 경우의 command를 살펴보았습니다.

반응형