Git을 쓰다보면, 간혹... 올리면 안될 정보를 Commit하고 Push까지 해버려서 깃허브에 공개해버리는 경우가 있다.
대부분 조심해서 그렇게 하지 않겠지만, 얼마전에 스프링부트 테스트 코드에 API 키를 포함해서 Push까지 해버린적이 있었다.
(main 코드가 아니라 부주의 했다....ㅜㅜ)
다행히 거의 바로 알아차리고 원격저장소에 Push한 내역을 되돌리는 방법을 찾아 되돌렸다.
Push한 사항을 되돌리는 부분을 정리해보자.
먼저, 워킹 디렉토리로 이동한다. Git에 연결되어 있는 레포지토리 디렉토리이다.
$ cd git/<디렉토리 경로>
Git 커밋 목록을 확인한다. 꼭 필요한 과정은 아니지만 되돌아가고자 하는 커밋 내역을 확인하기 위해 수행한다.
$ git reflog
이제, 취소하고자 하는 git commit을 취소한다.
#한단계 앞으로 되돌리기
$ git reset HEAD^
#두단계 앞으로 되돌리기
$ git reset HEAD^^
#단계 지정해서 되돌리기 - git reflog로 확인가능
$ git reset HEAD@{단계}
아래 그림을 보면, git reset 후 git 로컬저장소에서 리셋이 되었으나, 로컬저장소와 원격저장소가 일치하게 위치하고 있지 않은것을 알 수 있다.
이제, 리셋된 로컬저장소의 상태를 그대로 원격저장소로 push한다. 그렇게 되면 로컬저장소와 원격저장소의 상태가 일치하게 위치하는것을 확인 할 수 있다.
#현재 상태로 강제 push
$ git push origin master -f
'Git' 카테고리의 다른 글
Github - Code Owner 설정 (0) | 2025.03.15 |
---|---|
로컬에 남아있는 불필요한 branch 삭제 (0) | 2023.12.24 |
Git pull / fetch/ stash 사용법 (error: 병합하기 전에 변경 사항을 커밋하거나 스태시하십시오 해결) (0) | 2022.05.12 |