힘내 튜토리얼-리베이스
우리는 기본 병합을 다루었습니다.
-
빨리 감기 병합
-
3 방향 (재귀) 병합
이 튜토리얼에서는 git 의 가장 중요한 기능 중 하나 인 rebasing 을 소개합니다.
git rebase 란 무엇입니까?
Rebasing 은 기본 마스터 커밋을 기반으로 분기의 루트 커밋을 변경한다는 의미입니다. 즉, 마스터 커밋과 같이 병합하려는 분기의 최근 커밋으로 기본 커밋을 재설정합니다.
이것이 어떻게 보이는지 보자.
이 다이어그램에는 ‘마스터’와 ‘피처’브랜치가 있으며, ‘피처’브랜치에서 작업하는 동안 다른 팀원은 계속 ‘마스터’에 대한 작업을 계속했습니다.
우리는 브랜치를 다시 master
로 병합하기 전에 리베이스하고 싶습니다. rebase 명령을 실행할 때, 테스트 브랜치가 C1
이 아닌 C3
을 가리 키지 않고 기반으로하는 커밋을 변경합니다. 아래 그래프는 rebasing 후 발생하는 상황을 보여줍니다.
변경 사항을 병합 할 때 커밋은 이제 master
의 최신 커밋을 기반으로하기 때문에 빨리 감기 만하면됩니다. 이것이 리베이스가 git 의 가장 강력한 기능 중 하나 인 이유입니다.
이 rebased Feature
브랜치를 master
에 병합하면 커밋 로그 그래프는 다음과 같습니다.
‘기능’분기가 존재하지 않았으며 모든 커밋 로그가 직선으로 보입니다.
리베이스 워크 플로우
-
기능 분기 작성
$ git checkout -b Feature
-
이 브랜치를 변경하고 커밋
$ git add modified.txt
$ git commit -m 'coment here'
-
피처 브랜치를 ‘마스터’로 리베이스
$ git rebase master
-
리베이스 된 기능 브랜치를 ‘마스터’에 병합
$ git checkout master
$ git merge Feature
rebasing 의 황금률
가장 중요한 규칙은 기록을 다시 작성하기 때문에 공개 한 지점을 리베이스하지 않는 것입니다.
퍼블릭 브랜치를 리베이스하고 다른 브랜치에서 마스터 브랜치로 작업하기 때문에 새로운 브랜치 변경을 마스터 브랜치로 리베이스 한 후 누군가가 브랜치에서 작업을 수행하는 경우 매우 어려울 것입니다.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook