배워서 남주는 개발자 :)

Web

알면 좋은 Git 명령어 [rebase, amend, cherry pick, reset, revert stash]

핏짜보이 2022. 6. 30. 23:16
반응형

다섯가지의 알면 좋은 깃 기능을 정리해보겠습니다.

 

1. Rebase

When - 주로 병헙 간의 충돌시 사용. 서로 다른 브랜치 간에 병합시, 같은 파일을 수정하거나 공통된 수정사항이 있을 경우 Rebase 사용

(단, rebase는 history를 변경하기 때문에 반드시 혼자 작업하는 브랜치에서만 사용해야 하며 rebase 진행후 '강제 푸시'를 해야 함)

 

2. Amend

When - 커밋은 했지만, 추가적으로 커밋을 하고 싶을 때 사용

 

3. Cherry Pick

When - 원하는 커밋만 가져올 때 사용

ex) 운영중인 서비스(main branch)에 버그가 발견되고, 해당 버그를 수정하기 위해 브랜치를 develop 브랜치에서 feature를 생성함. 해당 버그에 대한 수정은 되었지만, 기존에 개발 소스는 운영중인 서비스에 반영하고 싶지 않을 때와 같은 경우에 Cherry Pick 사용

=> 원하는 수정 부분만 가져오고 싶을때 사용

 

4. Reset & Revert

When

Reset - 말그대로 다시 되돌리는 것을 의미함

 

Reset / Revert  차이점

-> 옛날 커밋으로 브랜치를 되돌리는지 / 해당 커밋을 취소하는지 의 차이

 

Reset의 종류

- mixed : HEAD가 특정 커밋(과거/ 미래)을 새롭게 가리키게 됨. 그리고 staging area도 해당 커밋의 모습과 동일하게 변함. 

               하지만 현재 작업중인  working directory는 아무 영향을 받지 않음

reset -mixed

 

- hard : HEAD가 특정 커밋(과거/ 미래)을 새롭게 가리키게 됨.

             그리고 staging area와 현재 작업 중인 working directory도 해당 커밋의 모습과 동일하게 변함.

             그냥 깔끔하게 되돌리겠다는 의미 (강제/ 타노스의 플립...)

reset -hard

- soft : HEAD가 특정 커밋(과거/ 미래)을 새롭게 가리키게 됨.

            대신 현재 작업중인 working directory와 staging area는 아무 영향을 받지 않음

reset -soft

 

 

default = mixed 적용

 

Revert는 푸시를 해도 revert가 가능하며, 커밋 이력에 남음

 

5. Stash

When - (stash는 임시저장을 하는 기능으로) 개발중인 내역을 잠시 중단하고 다른 개발을 해야할 때 사용

ex) stash 를 만들어 놓고, 다른 개발을 진행 완료 후에, 기존의 stash를 불러와서 apply하는 방식으로 사용

 

 

위의 명령어를 잘 익혀서 상황에 맞는 적절한 명령어를 사용하시기 바랍니다! :)

 

 

 

참고

https://blog.naver.com/PostView.naver?blogId=codeitofficial&logNo=221950118036&redirect=Dlog&widgetTypeCall=true&directAccess=false 

728x90