초보도 쉽게 이해하는 git branch 개념 이해하기

초보도 쉽게 이해하는 git branch 개념 이해하기
git logo

서론

당신은 프로젝트를 진행하며 새로운 기능을 추가하고 싶을 수 있습니다. 그런데 이 기능 추가로 인해 기존의 안정된 코드에 문제가 생기면 어떡할까요? 여기서 git branch가 필요합니다. Branch는 마치 나무의 가지처럼, 프로젝트의 메인 줄기에서 뻗어 나가는 독립된 공간입니다. 이런 branch를 이용하면, 기존 코드에 영향을 주지 않고 새로운 기능을 안전하게 개발할 수 있어요.

우리는 항상 무언가를 시도하고 실험하며 성장합니다. 깃(Git)의 branch는 바로 그러한 실험과 시도를 도와줍니다. 새로운 아이디어나 기능을 추가하고 싶을 때, 메인 코드와 분리된 공간에서 자유롭게 작업할 수 있게 해주죠.

git branch 생성하기

branch란 무엇인가?

branch는 프로젝트의 독립된 버전을 나타냅니다. 새로운 기능을 개발하거나 버그를 수정할 때 새로운 branch를 생성할 수 있어요.

git branch my-new-branch
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true,'showCommitLabel': true}} }%% gitGraph TB: commit id:"1" branch newbranch

A에서 B로 새로운 branch가 생성된 것을 볼 수 있습니다

언제 branch를 생성해야 할까?

새로운 기능을 개발하거나 기존 기능을 수정할 때, 메인 코드에 영향을 미치지 않기 위해 branch를 생성할 수 있습니다. 예를 들어, 쇼핑몰 웹사이트에서 새로운 결제 시스템을 도입하고 싶다면, 이를 위한 branch를 생성하고 안전하게 개발을 진행할 수 있어요.

branch 이동하기: git checkout과 git switch

이제 생성한 branch로 이동해봅시다.

git checkout my-new-branch

또는

git switch my-new-branch
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true,'showCommitLabel': true}} }%% gitGraph TB: commit id:"1" branch my-new-branch checkout my-new-branch commit id:"2"

B에서 C로 이동한 것을 확인할 수 있어요.

어떤 상황에서 branch를 checkout해야 할까?

branch 이동은 여러 작업을 동시에 진행할 때 유용합니다. 예를 들어, "feature-1" branch에서 작업 중인데 긴급한 버그 수정이 필요하다면, "hotfix" branch로 이동하여 버그를 수정하고 다시 "feature-1" branch로 돌아올 수 있습니다.

checkout과 switch의 차이가 무엇일까?

git checkout 명령어는 git에서 매우 다양하고 유연한 역할을 합니다. 이는 커밋 단위 전환부터 브랜치 전환까지 다양한 옵션을 지원합니다. 그러나 이런 다양성은 때로는 사용성을 떨어트릴 수 있습니다. 하나의 명령어가 너무 많은 기능을 포함하면 명령어의 본래 목적이 흐릿해지고, 사용자가 혼란스러워질 수 있습니다.

이 문제를 해결하기 위해 git switch가 도입되었습니다. git switch는 branch 조작만을 위한 명령어로, git checkout의 브랜치 관련 기능을 분리하여 사용성을 높였습니다. 즉, git switch를 사용하면 브랜치를 쉽게 이동하거나 생성할 수 있으며, git checkout은 브랜치 조작 외의 다른 기능들도 포함하는 명령어입니다.

만든 이의 의도에 따라 브랜치 조작을 위해서는 git switch를 사용하는 것이 권장됩니다.

git branch 병합하기 (merge)

branch 병합하기

병합은 두 개의 branch를 합치는 과정입니다. main branch로 돌아가 병합을 진행해봅시다.

git checkout main
git merge my-new-branch
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true,'showCommitLabel': true}} }%% gitGraph TB: commit id:"1" branch my-new-branch checkout my-new-branch commit id:"2" checkout main merge my-new-branch

이제 두 branch가 병합된 것을 볼 수 있습니다. git merge유의할 점은 충돌이 발생할 수 있으므로 조심해야 합니다.

언제 branch를 merge해야 할까?

branch의 작업이 완료되고 해당 기능이나 수정 사항이 메인 코드에 포함되어야 할 때 병합을 진행합니다. 쇼핑몰 웹사이트의 새로운 결제 시스템 개발이 완료되었다면, 이제 메인 코드와 병합해 전체 시스템에 적용할 수 있습니다.

초보도 쉽게 이해하는 git merge 완벽 정리
git merge의 필요성 개발 프로젝트에서 팀원들과 협업하며 일하다 보면 다양한 버전의 코드를 효율적으로 관리해야 하는 상황이 자주 발생합니다. 바로 이때, git merge가 빛을 발합니다. 이 아티클에서는 git merge의 개념과 사용법을 초보자도 쉽게 이해할 수 있도록 구체적으로 설명하겠습니다. 어렵게 느껴질 수 있는 병합 과정도 한 단계씩 따라가면 어렵지 않게 익힐 수

git branch 삭제하기

branch 삭제하기

더 이상 필요 없는 branch는 삭제할 수 있습니다. 삭제하기 전에 git branch 명령어를 이용해서 새로운 브랜치를 만들어볼까요?

git branch delete-me
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true,'showCommitLabel': true}} }%% gitGraph TB: commit id:"1" branch my-new-branch checkout my-new-branch commit id:"2" checkout main merge my-new-branch branch delete-me

이제 'delete-me' 브랜치를 삭제해봅시다 !

git branch -d delete-me
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'gitGraph': {'showBranches': true,'showCommitLabel': true}} }%% gitGraph TB: commit id:"1" branch my-new-branch checkout my-new-branch commit id:"2" checkout main merge my-new-branch

branch가 삭제된 것을 확인할 수 있어요.

어떤 상황에서 branch를 삭제해야 할까?

branch의 작업이 완료되고 병합된 후에는 해당 branch가 더 이상 필요하지 않을 수 있습니다. 예를 들어, 버그 수정이 완료되고 메인 코드에 병합된 "hotfix" branch는 이제 삭제해도 무방합니다.

결론

git branch의 생성, 이동, 병합, 삭제에 대한 기본적인 개념을 살펴봤습니다. git은 복잡해 보일 수 있지만, 차근차근 따라하면서 이해하면 누구나 매우 편리하게 사용할 수 있어요 !

함께 읽으면 좋은 글

Ghost로 블로그를 만든 5가지 이유와 특징
서론 안녕하세요. 블로그를 시작하려는 독자님들! 블로그를 시작할 때 플랫폼 선택은 가장 중요한 단계 중 하나입니다. 오늘은 제가 블로그를 시작하는 데에 수 많은 블로그 플랫폼 혹은 CMS 중 Ghost CMS를 선택한 이유를 적어보자 합니다. 사용자 친화적인 인터페이스 Ghost는 간결하고 직관적인 사용자 인터페이스로 초보자부터 전문가까지 모두가 쉽게 사용할 수 있습니다. 복잡한 기능과
Git pull vs Git Fetch 차이점 완벽 분석하기
git pull, git fetch가 뭐야? Git이란 무엇인가? Git은 코드의 변경을 추적하고 여러 사람들과 협력하기 위한 분산 버전 관리 시스템입니다. git pull과 git fetch의 필요성 git pull과 git fetch 는 개발 할 때 정말 많이 사용 하는 git 명령어 중 하나입니다. 둘의 차이를 한 마디로 요약하자면 merge(Merge에 대해 알아보기)를
git rebase 3분 안에 이해하기
서론 안녕하세요 ! 이번에는 git의 핵심 중 하나인 rebase에 대해 깊게 다뤄볼 것입니다. 이 포스트를 통해 rebase와 관련된 기본부터 고급 기술까지 모두 파악하실 수 있을 거에요. 1. git rebase의 기본 개념 먼저, rebase는 무엇인가요? rebase는 글자 그대로 ‘다시 기반을 다지다’라는 뜻입니다. git에서는 두 가지 브랜치의 기반을 다시 다져주는 역할을 합니다. 다음과