힘내 튜토리얼-리베이스

Jinku Hu 2023년1월30일 2020년4월4일
  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 의 황금률

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

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

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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