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

서론
당신은 프로젝트를 진행하며 새로운 기능을 추가하고 싶을 수 있습니다. 그런데 이 기능 추가로 인해 기존의 안정된 코드에 문제가 생기면 어떡할까요? 여기서 git branch가 필요합니다. Branch는 마치 나무의 가지처럼, 프로젝트의 메인 줄기에서 뻗어 나가는 독립된 공간입니다. 이런 branch를 이용하면, 기존 코드에 영향을 주지 않고 새로운 기능을 안전하게 개발할 수 있어요.
우리는 항상 무언가를 시도하고 실험하며 성장합니다. 깃(Git)의 branch는 바로 그러한 실험과 시도를 도와줍니다. 새로운 아이디어나 기능을 추가하고 싶을 때, 메인 코드와 분리된 공간에서 자유롭게 작업할 수 있게 해주죠.
git branch 생성하기
branch란 무엇인가?
branch는 프로젝트의 독립된 버전을 나타냅니다. 새로운 기능을 개발하거나 버그를 수정할 때 새로운 branch를 생성할 수 있어요.
git branch my-new-branch
A에서 B로 새로운 branch가 생성된 것을 볼 수 있습니다
언제 branch를 생성해야 할까?
새로운 기능을 개발하거나 기존 기능을 수정할 때, 메인 코드에 영향을 미치지 않기 위해 branch를 생성할 수 있습니다. 예를 들어, 쇼핑몰 웹사이트에서 새로운 결제 시스템을 도입하고 싶다면, 이를 위한 branch를 생성하고 안전하게 개발을 진행할 수 있어요.
branch 이동하기: git checkout과 git switch
이제 생성한 branch로 이동해봅시다.
git checkout my-new-branch
또는
git switch my-new-branch
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
이제 두 branch가 병합된 것을 볼 수 있습니다. git merge
시 유의할 점은 충돌이 발생할 수 있으므로 조심해야 합니다.
언제 branch를 merge해야 할까?
branch의 작업이 완료되고 해당 기능이나 수정 사항이 메인 코드에 포함되어야 할 때 병합을 진행합니다. 쇼핑몰 웹사이트의 새로운 결제 시스템 개발이 완료되었다면, 이제 메인 코드와 병합해 전체 시스템에 적용할 수 있습니다.

git branch 삭제하기
branch 삭제하기
더 이상 필요 없는 branch는 삭제할 수 있습니다. 삭제하기 전에 git branch
명령어를 이용해서 새로운 브랜치를 만들어볼까요?
git branch delete-me
이제 'delete-me' 브랜치를 삭제해봅시다 !
git branch -d delete-me
branch가 삭제된 것을 확인할 수 있어요.
어떤 상황에서 branch를 삭제해야 할까?
branch의 작업이 완료되고 병합된 후에는 해당 branch가 더 이상 필요하지 않을 수 있습니다. 예를 들어, 버그 수정이 완료되고 메인 코드에 병합된 "hotfix" branch는 이제 삭제해도 무방합니다.
결론
git branch
의 생성, 이동, 병합, 삭제에 대한 기본적인 개념을 살펴봤습니다. git은 복잡해 보일 수 있지만, 차근차근 따라하면서 이해하면 누구나 매우 편리하게 사용할 수 있어요 !
함께 읽으면 좋은 글


