branch를 하나 따서 작업한 코드를 dev나 main에 간단히 추가하려면 git merge를 쓴다.
현재 브랜치에서 추가하고 싶은 브랜치를 입력하면 된다.
current-branch > git merge target-branch
(current-branch의 내용을 target-branch에 merge 하라!)
그러나 merge와 비슷한 명령어로 rebase가 있는데 merge와 달리 작동 방식이 직관적이지 않아 헷갈린다.
merge를 이용하면 브랜치가 꽈배기처럼 꼬이고 불필요한 커밋 log가 남아
git 관리를 좀 더 효율적으로 하기 위해서 rebase를 사용하는 것 같다.
이런 장점이 있는 rebase를 사용하기 위해서 쉽게 설명해보고자 한다.
rebase는 말 그대로 base를 다시 설정하겠다는 말이다.
가지인 branch가 뻗어나온 base, 곧 root를 다른 것으로 대체하겠다는 말이다.
예를 들어 브랜치 a는 '1 - 2 - 3 - 4(head)'
브랜치 b는 '1 - 2 - 5(head)'라고 하자.
2에서 갈라지고 있다.
a와 b를 비교하면 base는 2가 된다.
브랜치 a에서 git rebase b를 입력하면
브랜치 a의 base를 b의 끝으로 하겠다는 말이기 때문에
base인 2 뒤의 '3 - 4'를 똑 잘라 새로운 base인 5에 붙여
브랜치 a는 '1 - 2 - 5 - 3 - 4'가 된다.
반대로 브랜치 b에서 git rebase a를 입력하면
브랜치 b의 base를 a의 끝으로 하겠다는 말이기 때문에
base인 2 뒤의 5를 똑 잘라 새로운 base인 4에 붙여
브랜치 bsms '1 - 2 - 3 - 4 - 5'가 된다.
'Git' 카테고리의 다른 글
git rebase로 commit 메시지를 수정하는 방법 (0) | 2020.10.17 |
---|---|
git rebase로 commit 메시지 순서 변경하는 방법 (0) | 2020.10.17 |
git reset --hard 되돌리는 방법 (2) | 2020.10.04 |
git fetch에 대해서 (0) | 2020.10.03 |
git stash 사용 방법 (0) | 2020.10.02 |