Git

Git 7강. rebase 로그 관리

JJJAEOoni 2022. 2. 2. 17:39
반응형

로그인 파일을 작성 중

어쩔 수 없는 사정으로 중단하고

집으로 가서 마저 작업하는 경우가 생길 것이다.

 

이때 commit을 해두어야 다른 컴퓨터에서 마저 할 수 있기 때문에

하나의 파일을 만들기 위한 log가

여러 개가 생길 수 있다.

 

예쁘지 않은 log를

rebase로 정리가 가능하다.

 

이때 rebase의 squash 옵션을 사용해준다.

 

squash는 찌그러트린다는 말, 즉 압축한다는 말이다.

 

log를 찌그러트릴 때는 원하는 log의 두 끝점 중

가장 과거의 log로 압축해야 한다.

 

위 브랜치의 3가지 로그인 log의 경우에는

아래 두 개의 log를 날리고

코드를 가장 과거인 로그인 완료 log로 모으는 것이다.

 

git rebase -i HEAD~3

HEAD가 가리키는 곳에서 3개의 log를 rebase 하는 것이다.

 


 

실습해보자.

 

4개의 파일과 log를 만들었다.

 

 

git rebase -i HEAD~3

하면 이런 vi에디터 창이 뜰 것이다.

 

수정을 하기 위해서는 i키를 눌러준다.

 

rebase의 다양한 옵션들 중 drop을 먼저 사용해볼 것이다.

drop은 d로 사용이 가능하고

파일을 날려버릴 때 사용한다.

 

i키를 눌러 수정 모드가 되면 원하는 파일에 pick을 d로 바꿔준다.

 

 

그리고 ESC버튼을 누르고 :wq를 입력해주면

저장하고 vi에디터가 종료된다.

 

내 파일에 로그인완료.txt 파일이 없어진 것을 볼 수 있다.

 

drop으로 날려버린 파일을

복구하기 위해서는

reflog를 이용해 이전 log로 돌아가 주면 된다.

 

 

다음 rebase의 옵션은 reword이다.

r로 사용이 가능하고 log의 이름을 수정할 수 있다.

 

마찬가지로 i키를 눌러 수정 모드로 바꿔준 후

pick을 r로 수정하고

ESC -> :wq 엔터키를 누르면

log를 수정할 수 있는 창이 뜬다.

 

 

이 창에서도 i키를 눌러 수정모드로 바꿔준 후

원하는 이름으로 수정하고

ESC -> :wq 엔터키를 눌러 종료해준다.

 

그리고 log를 확인해보면

설정한 log로 바뀐 것을 볼 수 있다.

 

 

이제 중요한 squash를 사용해보자.

 

git rebase -i HEAD~3

 

pick이 적힌 log로

s(squash)가 적힌 log들이 합쳐지는 것이다.

 

 

적혀있는 모든 로그들을 지워주고

원하는 commit log를 설정해준 다음

ESC -> :wq 엔터키를 쳐서 종료해준다.

 

 

성공적으로 squash 되어

다른 log들은 사라지고 하나의 log만 남아있다.

 

 

 

 

[출처]

 

 

https://inf.run/3Xiz

 

[무료] 지옥에서 온 관리자 Git - 인프런 | 강의

“소규모 협업을 통해 프로젝트 개발을 하고 싶은데 어떻게 해야 할지 모르겠어요!” “취업을 앞둔 취준생인데 Git을 몰라요!” 취준생, 주니어 개발자 등 프로그래머라면 꼭 알아야 하는 Git에

www.inflearn.com

 

반응형