Computer Engineering/github

[github] 커밋 하나 되돌리기 (revert, reset)

soohey 2022. 6. 23. 16:45

이미 PR에 푸쉬된 커밋을 되돌리는 방법을 기록합니다.

 

방법은 두 가지입니다.

1. 푸쉬된 커밋을 되돌리고 싶지만, 되돌리기 전 상황도 기록하고 싶을 때 -> revert

2. 푸쉬된 커밋을 없애고 싶을 때 -> reset

 

저는 보통 깃허브 데스크탑을 사용하여 커맨드 라인에서 사용할 일이 없지만 혹시나 해서 기록해봅니다!

 

 

1. commit 이력 조회하기

git log --oneline

 

2.  revert

현재까지 남긴 이력들을 유지한 채 되돌리고 싶은 commit을 원상복구시킵니다. (기존 commit을 남겨두고 복구 commit이 추가됨)

팀 협업을 할 경우 코드 공유가 필수이기 때문에 사용합니다.

기존 커밋을 남겨야 문제 발생 소지를 줄일 수 있습니다!

 

git revert "commit hash"

 

3.  reset

되돌리고 싶은 시점의 commit 이력으로 돌아갑니다. (뒤로 되돌아감)

reset --hard 명령어를 사용할 경우 해당 커밋 이후의 커밋들은 삭제됩니다.

 

git reset --hard "commit이름"

reset --soft : 해당 커밋으로 이동하지만, 코드의 변화는 없습니다. 즉 add한 상태로 보존하여 브랜치만 이동합니다.

reset --mixed(default) : 해당 커밋 이후의 commit은 날아가지만 코드의 변화는 없습니다.

reset --hard : 해당 커밋 이후의 커밋들은 모두 삭제합니다. 코드도 함께 삭제됩니다.

 

https://antilog.tistory.com/32