힘내 튜토리얼-리베이스

  1. git rebase 란 무엇입니까?
  2. 리베이스 워크 플로우
  3. rebasing 의 황금률

우리는 기본 병합을 다루었습니다.

  • 빨리 감기 병합

  • 3 방향 (재귀) 병합

이 튜토리얼에서는 git 의 가장 중요한 기능 중 하나 인 rebasing 을 소개합니다.

git rebase 란 무엇입니까?

Rebasing 은 기본 마스터 커밋을 기반으로 분기의 루트 커밋을 변경한다는 의미입니다. 즉, 마스터 커밋과 같이 병합하려는 분기의 최근 커밋으로 기본 커밋을 재설정합니다.

이것이 어떻게 보이는지 보자.

힘내 기능 지점

이 다이어그램에는 ‘마스터’와 ‘피처’브랜치가 있으며, ‘피처’브랜치에서 작업하는 동안 다른 팀원은 계속 ‘마스터’에 대한 작업을 계속했습니다.

우리는 브랜치를 다시 master 로 병합하기 전에 리베이스하고 싶습니다. rebase 명령을 실행할 때, 테스트 브랜치가 C1 이 아닌 C3 을 가리 키지 않고 기반으로하는 커밋을 변경합니다. 아래 그래프는 rebasing 후 발생하는 상황을 보여줍니다.

힘내 기능 지점

변경 사항을 병합 할 때 커밋은 이제 ‘master’의 최신 커밋을 기반으로하기 때문에 빨리 감기 만하면됩니다. 이것이 리베이스가 git 의 가장 강력한 기능 중 하나 인 이유입니다.

이 rebased Feature 브랜치를 master 에 병합하면 커밋 로그 그래프는 다음과 같습니다.

리베이스 후 Git 로그 그래프

‘기능’분기가 존재하지 않았으며 모든 커밋 로그가 직선으로 보입니다.

리베이스 워크 플로우

  • 기능 분기 작성
    $ git checkout -b Feature
    
  • 이 브랜치를 변경하고 커밋
    $ git add modified.txt
    $ git commit -m 'coment here'
    
  • 피처 브랜치를 ‘마스터’로 리베이스
    $ git rebase master
    
  • 리베이스 된 기능 브랜치를 ‘마스터’에 병합
    $ git checkout master
    $ git merge Feature
    

rebasing 의 황금률

가장 중요한 규칙은 기록을 다시 작성하기 때문에 공개 한 지점을 리베이스하지 않는 것입니다.

퍼블릭 브랜치를 리베이스하고 다른 브랜치에서 마스터 브랜치로 작업하기 때문에 새로운 브랜치 변경을 마스터 브랜치로 리베이스 한 후 누군가가 브랜치에서 작업을 수행하는 경우 매우 어려울 것입니다.