728x90
728x90
git push 취소하는 방법
들어가며
- 깃(Git)에서 @push@를 한 후, 취소하는 방법을 정리해본다.
방법
최근에 푸시한 커밋 취소하기
- 마지막 커밋을 삭제하는 명령이다.
- 하지만 작업 디렉터리의 변경 사항은 그대로 유지된다.
$ git reset --soft HEAD^
- 만약, 작업 디렉터리의 변경 사항을 초기화하려면 아래의 명령을 실행한다.
$ git reset --hard HEAD^
@--hard@ 옵션을 이용하여 리셋할 경우, 작업 디렉터리의 변경 사항이 초기화된다. (변경된 내용이 모두 사라진다.)
- 원격 저장소에 이 변경 사항을 강제로 반영하고자 할 경우, 아래 명령을 실행한다.
$ git push --force
참고
- 또는 다음과 같이 @HEAD@ 키워드를 이용하여 취소할 수 있다.
# 로컬 브랜치를 이전 커밋으로 되돌리기
$ git reset --soft HEAD~1
# 되돌린 후 다시 푸시 (-f : 강제 푸시)
$ git push -f
⇒ @HEAD~1@은 가장 최근의 커밋을 가리킨다. 여러 개의 커밋을 되돌리고 싶을 경우, 숫자를 변경한다.
푸시한 커밋 중, 특정 커밋만 취소하기
$ git revert abc123
- 원격 저장소에 여러 커밋을 푸시했는데 그중 하나만 취소하고 싶다면 @revert@ 명령어를 사용할 수 있다.
- 이때 삭제하고자 하는 커밋의 해시(@abc123@)를 이용한다.
- 이 명령은 해당 커밋을 되돌리는 새로운 커밋을 추가하며, 작업 이력은 유지된다.
- 위의 명령을 실행하고, 변경 사항을 다시 푸시한다.
$ git push
@revert@를 사용할 경우, @reset@과 달리 커밋 기록을 남긴 채 변경 사항을 취소한다.
참고
- 또는 다음과 같이 @HEAD@ 키워드를 사용하여 취소할 수 있다.
$ git revert HEAD
$ git push
전체 브랜치를 이전 상태로 되돌리기
- 브랜치를 특정 커밋으로 되돌리고 싶을 경우, 다음과 같이 강제로 브랜치 상태를 지정할 수 있다.
$ git reset --hard <커밋 해시>
$ git push --force
(참고) 해시 확인하기
$ git reflog
0eed668 (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: pull --tags origin master: Merge made by the 'ort' strategy.
34b1042 HEAD@{1}: commit: README.md 파일의 폴더 구조대로 파일/폴더 생성
c5ef412 HEAD@{2}: reset: moving to HEAD^
615a72d HEAD@{3}: reset: moving to 615a72d
eb2ab3e HEAD@{4}: reset: moving to HEAD^
c5ef412 HEAD@{5}: reset: moving to HEAD^
615a72d HEAD@{6}: commit: [Chore] Make basic files and folders based on README.md
c5ef412 HEAD@{7}: clone: from https://github.com/apstinc/rinfos-front.git
참고 사이트
728x90
728x90
'VCS > Git' 카테고리의 다른 글
[Git] .gitignore 파일에 환경 설정 파일(.env) 등록하는 방법 (0) | 2024.11.02 |
---|---|
[Git] 브랜치 : 원격 저장소의 최신 내용을 가져오고, 기존의 브랜치 내용 지우기 (0) | 2024.02.27 |
[Git] 비주얼 스튜디오 코드(Visual Studio Code)와 깃허브(GitHub) 연동하기 (0) | 2022.06.23 |