- Rebase는 말 그대로 (re-base)로 베이스를 재배치한다는 뜻입니다.
- 예시를 들자면 우리는 git을 사용시 각각의
commit
할 상황이 많은데 이때Rebase
사용하면 각각의commit
들이 하나의commit
으로 합쳐지는 것이다.
Merge
- 위에 사진을 보면 Git Merge와 Git Rebase 가 있는데
- Git Merge 는 각각의 기능별 브랜치에서 수정사항이 있으면 commit > merge > main에서 다시 pull 받고 > 다시 진행
- 이런 식으로 진행하다보면
commit
이 많아진다.
Rebase
- 그 와 반대로 밑에 Rebase를 하면 각 기능별로
commit
이 정리되어 있다.
- 나중에 프로젝트 진행시 팀원이 많아 충돌나는데 하나하나씩 수정해야한다. 그래서 3~4번 때
Rebase
하는거 추천- 충돌시 일어나면 밑에 사진처럼 진행하면된다. 위에 글에 3~4번 때
Rebase
하라고 했는데 그 이유는 이러한 충돌시 수정내용을 바꿔야 하기 때문이다. 만약 수정내용이 12번 이라고 가정했을 때 헷갈릴수 있어서 3~4번이 적당하다고 생각한다.
vi test.md
로 파일 하나를 생성하고 안에 내용을 3번 수정후 git add
및 gt commit
으로 반복작업을 한 상태이다.git log
명령어로 commit
한 흔적이 3번 있다고 명시되어 있다.Rebase
를 할 때 commit
메세지 내용을 하나로 줄여주는 작업이다. 이 작업은 Squash
작업이라 불린다.
- Squash : Rebase를 하면 각각의 commit들이 하나의 commit으로 합쳐지고, 그러면 각각의 메세지들은 합쳐지면 지져분 하니 다시 커밋내용을 쓸 수있게 해주는 기능이다. 대신의 커밋의 내용이 방대하니 자세하게 설명을 써야한다.
pick d455db [Add]rebase 실습 test
가 명시 되어있는데 기존에 작업한 내역이 있어서 보여지는 거고 그 밑으로 방금 commit
생성 내용이 보여지는 사진이다.-위에 사진과 같이 pick
부분을 s
로 바꾸면된다.
ctrl+X
를 입력하면 y
를 입력 후 엔터 ctrl+x
를 입력해서 이 창에서 나온다.git log
그 후 입력해서 commit
내용을 살펴보면 기존에 작업했던 파일 내용에 합쳐져 있는걸 볼 수있다.
이제 push
과정 진행하면 Rebase
작업이 끝난다.