코딩마을방범대
Intellij IDEA에서 Git push 되돌리기 본문
728x90
git에 push한 데이터를 되돌려야 되는 경우 Intellij에서도 간단하게 진행이 가능하다.
- 20230725 버전: 에러 발생
- 20230625 버전: 정상 작동
위와 같은 상황이라면 20230625 때의 Commit ID를 알아내면 된다.
먼저 push를 되돌리는 명령어에는 두가지가 존재한다.
명령어 | 설명 |
Reset | 특정 Commit을 삭제 ( 특정 커밋 이후는 모두 삭제 ) 커밋 히스토리가 깔끔해진다. |
Revert | Commit은 그대로 두고, Commit을 취소하겠다는 추가 Commit을 실행 ( 덮어쓰기 ) 협업 시 충돌 확률을 낮춰준다. |
1. Reset 진행
Intellij 에서 수행 시
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 취소
2. push 진행
커밋을 원하는대로 되돌린 후 아래 명령어 수행
–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 add / commit / push 취소하기 💯 정리
728x90
'🎃 기타 > Git' 카테고리의 다른 글
Git 커밋 리셋 방법 (0) | 2024.01.09 |
---|---|
이전 커밋 수정하기 & 이전 커밋 삭제하기 (0) | 2023.11.09 |
Git의 merge와 rebase의 차이 (0) | 2023.08.23 |
Intellij IDEA에서 Git 특정 커밋만 가져오기 (0) | 2023.08.23 |
Git 명령어 모음 (0) | 2023.05.26 |