git rebase 3분 안에 이해하기

git rebase 3분 안에 이해하기
git image

서론

안녕하세요 ! 이번에는 git의 핵심 중 하나인 rebase에 대해 깊게 다뤄볼 것입니다. 이 포스트를 통해 rebase와 관련된 기본부터 고급 기술까지 모두 파악하실 수 있을 거에요.


1. git rebase의 기본 개념

먼저, rebase는 무엇인가요? rebase는 글자 그대로 '다시 기반을 다지다'라는 뜻입니다. git에서는 두 가지 브랜치의 기반을 다시 다져주는 역할을 합니다.

다음과 같은 상황이 있다고 가정하겠습니다.

gitGraph commit id: "C-1" commit id: "C-2" branch feature-branch checkout feature-branch commit id: "C-3" checkout main

1.1. git merge와의 차이점

mergerebase의 가장 큰 차이점은 커밋 히스토리의 표현 방식입니다.

git checkout feature-branch
git merge master
gitGraph commit id: "C-1" commit id: "C-2" branch feature-branch checkout feature-branch commit id: "C-3" checkout main merge feature-branch id: "C`"

1.2. rebase의 기본 사용법

만약 rebase 를 사용한다면 다음은 커밋 히스토리가 형성됩니다.

git checkout feature-branch
git rebase master
gitGraph commit id: "C-1" commit id: "C-2" %% branch feature-branch %% checkout feature-branch commit id: "C-3" %% checkout main %% merge feature-branch id: "C`" commit id: "C`"

2. rebase의 동작 원리

2.1. 작업 단계별 분석

  1. 현재 브랜치에서 작업한 커밋들을 임시 공간에 저장합니다.
  2. rebase할 대상 브랜치로 이동합니다.
  3. 임시 공간에 저장된 커밋들을 차례대로 적용합니다.

3. rebase 시 주의점

3.1. 공개 브랜치에서는 rebase를 사용하지 마세요

rebase는 히스토리를 재작성하기 때문에, 다른 사람과 공유하는 브랜치에서는 사용하지 않는 것이 좋습니다.

3.2. 충돌 발생 시

rebase 중 충돌이 발생하면 해결 후 git rebase --continue를 사용하여 rebase를 계속 진행합니다.

# 충돌 해결 후
git add [파일명]
git rebase --continue

4. rebase는 왜 사용할까?

개발을 진행하며 코드를 합치는 방법은 여러 가지가 있지만, 그 중 mergerebase는 가장 대표적인 두 가지 방법입니다. 각각은 어떤 상황에 사용하며, 어떤 특징이 있는지 살펴보겠습니다.

4.1. Merge와 Rebase의 기본 개념

  • Merge: 한 브랜치의 모든 변경 사항을 다른 브랜치에 한 번의 커밋으로 합치는 방법입니다.
  • Rebase: 나의 브랜치의 시작점을 새로운 기점으로 이동시키는 것을 의미합니다.

4.2. 언제 어느 것을 사용할까?

  • Merge의 사용 경우: 당신이 단일 기능을 개발하기 위해 브랜치를 생성했다고 가정해보겠습니다. 이러한 변경 사항을 master로 가져오고자 할 때, merge를 사용하면 좋습니다.
  • Rebase의 사용 경우: 개발을 시작한 후, 다른 개발자가 관련 없는 변경을 했을 경우, 저장소의 현재 버전을 기반으로 변경 사항을 다시 기반으로 하고자 할 때 rebase를 사용하면 좋습니다.

마치며

마무리하며, git rebase는 사용법과 주의점을 잘 숙지하면 매우 강력한 도구가 될 수 있습니다. 꾸준한 연습과 이해를 통해 git 마스터가 되시길 바랍니다. 다음 시간에는 다른 git 주제로 여러분을 찾아뵙겠습니다. 화이팅! 🚀

함께 읽으면 좋은 글

초보도 쉽게 이해하는 git branch 개념 이해하기
서론 당신은 프로젝트를 진행하며 새로운 기능을 추가하고 싶을 수 있습니다. 그런데 이 기능 추가로 인해 기존의 안정된 코드에 문제가 생기면 어떡할까요? 여기서 git branch가 필요합니다. Branch는 마치 나무의 가지처럼, 프로젝트의 메인 줄기에서 뻗어 나가는 독립된 공간입니다. 이런 branch를 이용하면, 기존 코드에 영향을 주지 않고 새로운 기능을 안전하게 개발할 수 있어요.
초보도 쉽게 이해하는 git merge 완벽 정리
git merge의 필요성 개발 프로젝트에서 팀원들과 협업하며 일하다 보면 다양한 버전의 코드를 효율적으로 관리해야 하는 상황이 자주 발생합니다. 바로 이때, git merge가 빛을 발합니다. 이 아티클에서는 git merge의 개념과 사용법을 초보자도 쉽게 이해할 수 있도록 구체적으로 설명하겠습니다. 어렵게 느껴질 수 있는 병합 과정도 한 단계씩 따라가면 어렵지 않게 익힐 수