본문 바로가기
Back-End

Git ) rebase -i

by 어렵다어려웡 2021. 3. 20.

로젝트를 할 때나 공부할 때  항상 branch를 따서 진행하는 습관을 들이고 있다.

 

사실 리베이스는 주로 협업할 때 많이 쓰이는 편이며, 

 

현재의 나는 쓸 일은 없지만 그래도 알고 있는게 좋은 명령이 이므로 작성을 해봅니다..

 

* 리베이스란?

리베이스를 가지고 2개의 역할을 할수 있다고 알고 있다.

1. 깃의 베이스를 변경한다 (?)

2. 커밋을 합친다.

 

1번의 경우 예를 들면 2/1일의 master 브랜치에서 따온 A 브랜치를 작업을 했으나 

시간이 오래 흘러서 당일 2/10일의 master 브랜치에서 따온것 처럼 베이스를 옮기는 작업을 하는 경우

 

2번의 경우 Git에 push를 하게되면 history가 남는데 그때 단 하나의 로그를 남겨서 

사용중인 git 의 history를 좀더 깔끔하게 남겨두고자 할 떄 쓰는 경우.

 

 

리베이스를 하기전에 push 가 되어있어야 합니다. 꼭 기억하시길.

 

우선 현재 브랜치는 CShop_vol7 이고 해당 브랜치에서 2개의 커밋이 발생한 로그를 확인할 수 있다

해당 브랜치에서 " git rebase -i master " 명령어를 입력합니다.

 

 

그러면 위처럼 해당 브랜치에서 이용된 커밋 내역을 볼 수 가 있는데

이 상태에서 화살표 위아래로 누르면 포인터가 이동하는게 보일 겁니다.

내가 지우고자 하는 커밋이 있는 줄에 포인터를 맞춰 주신후 c w s 를 누릅니다.

( 사실 어떤 커밋에 위치하든 상관없는지 기억이 안난다.. 직접 해보셔요)

 

그럼 위 사진처럼 나올텐데 이 상태에서 ESC 누르신 다음 순서대로 " : w q "를 클릭 후 Enter를 클릭하세요

 

Enter를 누르시면 위 처럼 커밋 내역을 삭제할 수 있는 화면이 나타납니다.

이 상태에서 화살표 클릭으로 밑으로 내리신 다음 내역을 지웁니다.  D 버튼을 연속해서 2번 누르면 

본인이 가리키고 있는 해당 줄이 사라지게 됩니다. 

커밋 내역하고 메세지까지 지우 신 후에 다시한번 " : w q " 를 누르시고 Enter로 빠져나오시면 됩니다.

 

이후 여기서 마지막으로 git push origin -f "브랜치명" 명령어를 통해서 push를 하시면 

남겨두었던 첫번째 커밋 메세지만 git history에 남게됩니다.

 

'Back-End' 카테고리의 다른 글

MySQL) Partitioning ( Range , List )  (0) 2021.09.19
디자인 패턴의 정의 및 종류  (0) 2021.05.29
정리) Chapter 2  (0) 2021.04.01