[Git] pull 되돌리기 & 원격에 올라간 commit 되돌리기
git 을 사용하여 협업하다보면,
실수하거나, 뭔가 버그가 있어서 되돌리고 싶은 경우가 있다.
간단히 정리해보자
1) pull or merge 의 취소
remote branch 의 소스를 pull 받았는데, 뭔가 아닌 것 같다.
pull 받기 전의 내 local 소스로 돌아가고 싶다.
이런 때, git terminal 에 아래의 명령어를 입력한다.
//pull 취소 (pull 직전의 상태로 되돌아감)
$ git reset --hard ORIG_HEAD
//merge 취소
$ git reset --merge ORIG_HEAD
2) 원격에 올라간 commit 되돌리기
작업을 commit 하고, push 하여 remote branch 에 올렸다.
아뿔사, 버그가 있다.
local 에서는 이전 작업으로 reset 하면 되는데, 이미 올라간 소스는 어떻게 되돌리지?
만약 다른 작업자들이 내 잘못된 소스를 이미 pull 받아버렸다면? 아... 고통이다.
이런 때, 내가 되돌린 작업 또한 커밋 히스토리로 남겨서 이후 다른 작업자들이 pull 받았을 때,
되돌린 작업이 공유될 수 있게 해보자
(먼저 되돌리고자 하는 commit 의 hash 가 필요하다)
//예시) $ git revert ecc8aae7
$ git revert <되돌리고 싶은 commit의 hash>
//revert 시킨 후, 자동적으로 commit 되는 것을 막고싶다면,
$ git revert --no-commit <되돌리고 싶은 commit의 hash>
revert 와 reset 의 차이는
revert 는 커밋 히스토리를 남긴다는 것이다.
그래서 주로 내 local 에서 어떤 시점으로 되돌리고 싶다면 reset 을 사용하고,
remote branch 에서 되돌리고 싶다면 revert 를 사용한다.
다른 branch 의 특정 commit 을 현재 branch 로 쓱 따오고 싶다면?
https://devinserengeti.tistory.com/33?category=917422
'[개발 공부] > [Git - 버전관리]' 카테고리의 다른 글
[Git] first commit 하기 & git ignore가 동작하지 않을 때(git cache 삭제) (0) | 2024.05.13 |
---|---|
[Git] cherry-pick: 다른 branch commit 복사해오기 (0) | 2022.05.26 |
[Git] local branch 생성/삭제 & remote branch 연동/삭제 (0) | 2022.05.26 |
[Git] SSL 에러: SSL certificate problem: unable to get local issuer certificate 3가지 해결방법 (0) | 2022.02.16 |