[개발 공부]/[Git - 버전관리]

[Git] pull 되돌리기 & 원격에 올라간 commit 되돌리기

wild keyboardist 2022. 5. 26. 16:51

[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] cherry-pick: 다른 branch commit 복사해오기

[Git] cherry-pick: 다른 branch 의 commit 현재 branch 에 적용하기 git 을 사용하여 협업하다보면 여러 branch 에서 작업하는 경우가 있는데, 다른 branch 의 commit 을 현재의 branch 로 그대로 가져오고 싶을..

devinserengeti.tistory.com