코딩마을방범대

Intellij IDEA에서 Git push 되돌리기 본문

🎃 기타/Git

Intellij IDEA에서 Git push 되돌리기

신짱구 5세 2023. 7. 25. 17:37

 

git에 push한 데이터를 되돌려야 되는 경우 Intellij에서도 간단하게 진행이 가능하다.

 

- 20230725 버전: 에러 발생

- 20230625 버전: 정상 작동

 

위와 같은 상황이라면 20230625 때의 Commit ID를 알아내면 된다.

 

 

먼저 push를 되돌리는 명령어에는 두가지가 존재한다.

명령어 설명
Reset 특정 Commit을 삭제 ( 특정 커밋 이후는 모두 삭제 )
커밋 히스토리가 깔끔해진다.
Revert Commit은 그대로 두고, Commit을 취소하겠다는 추가 Commit을 실행 ( 덮어쓰기 )
협업 시 충돌 확률을 낮춰준다.

 

 


 

 

 

Intellij의 git 탭에서 원하는 브랜치를 선택한 후 되돌리고 싶은 Commit을 클릭한 후

Reset Current Branch to Here을 선택하면 해당 버전으로 돌아간다.

 

클릭해보면 아래처럼 여러 옵션이 존재한다.

 

 

옵션 설명
Soft 파일을 staging area 로 돌려놓음.  > commit 하기 전 상태
( 커밋취소, Staging 상태 유지 )
Mixed 파일을 working directory로 돌려놓음 > add 하기 전 상태
( 커밋취소, Staging 취소, local 변경 상태로 유지 (옵션설정 없을시 default) )
Hard 파일들 중 tracked 파일들을 working directory에서 삭제
( 커밋취소, Staging 취소, local 변경 상태 취소 )
Keep 파일은 선택한 커밋으로 돌아가지만 로컬 변경사항은 그대로 유지됨

 

 

터미널에서 수행 시

git reset --soft [commit ID] 
git reset --mixed [commit ID]
git reset --hard [commit ID]
git reset HEAD~10 
git reset HEAD^

git revert [commit ID]
해석
> git reset HEAD~10

마지막 10개 Commit 취소
> git reset HEAD^
가장 최근 Commit 취소
> git reset HEAD^^
가장 최근 2개 Commit 취소

 

 

 


 

 

 

커밋을 원하는대로 되돌린 후 아래 명령어 수행

–force 옵션은 경고를 무시하고 강제 push를 진행함

 

※ master 브랜치로 푸쉬할 경우엔 권한이 있어야함!

git push --force
# 또는
git push origin [branch name] -f
# 또는
git push origin +[branch name]

 

 

 

 


참고사이트

[Git] Revert와 Reset으로 커밋 삭제하기 | IntelliJ Reset, Revert 사용하기

Git 명령어 모음

[GIT] ⚡️ git add / commit / push 취소하기 💯 정리

 

 

SMALL