UX·UI - FrontEnd Dev. Story

작업 피드백/개발

[Git] 늘 멘붕터지는 push 완료한 commit 되돌리기 - reset 사용

클로이겅쥬 2024. 3. 21. 15:22
반응형

 

 

 

 

작업을 하다보면 push한 commit을 되돌려야하는 상황이 온다.

그럴때마다 매번 어떻게 했는지 기억이 안나서 빡쳐서 메모해두기로..

 

 

 

 

Reset 사용하여 깃 커밋 되돌리기!!!

 

1. commit 리스트 확인

우선 commit 리스트 확인은

git log

 

 

 

 

 

2. commit 취소하기

가장 최근 커밋(commit)한것을 취소하고 싶을땐

git reset HEAD^

 

 

여러개의 커밋을 취소하고 싶을땐?

git reset HEAD~n

 

* n에는 개수만큼 입력하면 된다.

2개 = git reset HEAD~2

3개 = git reset HEAD~3

 

 

reset 옵션

명령 설명
--soft HEAD^ - 커밋취소
- 커밋 취소된 파일 스테이징에 복구
- 파일 수정사항 유지
--mixed HEAD^ (기본옵션)
최근 커밋 & 스테이징을 하기 전 상태로 되돌리기 

- 커밋취소
- 커밋 취소된 파일은 스테이징 취소
- 파일 수정사항 유지
--hard HEAD^ 최근 커밋과 스테이징, 파일 수정 전 상태로 작업 되돌리기

- 커밋취소
- 커밋 취소된 파일은 스테이징 취소
- 파일 수정사항 삭제

이 옵션의 주의사항!! 파일을 되돌릴 수 없다는 점이다.
따라서
신중하게 사용하거나 복구할 수 있는 저장소가 있는 경우에만 사용.

 

 

 


 

 

 

3. git reset 사용

'git reset'은 원하고자 하는 커밋으로 현재 브랜치를 되돌리는 기능이다.

이 방법은 히스토리를 변경하기 때문에, 이미 공유된 리포지토리의 경우 주의하여 사용해야 한다.

 

- hard reset : 변경 사항을 모두 삭제 후, 특정 커밋 브랜치로 되돌린다.

git reset --hard <커밋 해시>

 

- soft reset : 변경 사항을 유지하면서 특정 커밋으로 브랜치 되돌린다.

git reset --soft <커밋 해시>

 

 

4. git reflog

'git reflog'는 브랜치의 히스토리를 확인 후, 잘못된 푸시 이전 상태로 돌아가는데 유용하다.

 

 

 

 


 

 

 

3. 깃허브 서버에 강제 push!

그리고 커밋 commit한것을 깃허브(GitHub)에 알려주기위해 강제로 푸시!

git push -f origin "브랜치명"

 

 

* master에 푸시한 commit 삭제하려면

git push -f origin master

 

 

 

 

 

 

 

이제 두려울 것이 없다!!!!!!!!

그래도 늘 조심하자...ㅎ

반응형