매일 업데이트
2023-04-26 07:43 10 min

프로처럼 새로운 Git 브랜치를 만드는 방법

Git 브랜치의 중요성

Git의 브랜치 기능은 핵심적인 역할을 수행합니다. 이는 코드의 안전성을 유지하면서 특정 기능 또는 소프트웨어 구성 요소에 대한 작업을 가능하게 하는 방법입니다. 개발자는 소스 코드를 변경하고, 이러한 변경 사항을 적용할지 여부를 결정할 수 있습니다. 변경 사항은 최종적으로 프로젝트에 통합되거나 폐기될 수 있습니다.

Git을 사용해 본 경험이 있다면 브랜치를 생성하는 다양한 방법을 인지하고 있을 것입니다. Git을 처음 접하는 개발자라면, 버전 관리 도구의 활용법을 익히는 것이 상당한 시간 절약에 도움이 될 것입니다. 이는 개발 경험을 더욱 흥미롭게 만들어 줄 것입니다.

이 글에서는 정의된 작업 흐름 내에서 Git 브랜치를 효과적으로 생성하는 방법을 다룹니다. 이를 통해 GitHub 저장소를 관리하는 데 필요한 실용적인 기술을 습득할 수 있을 것입니다.

참고: Git을 처음 접하는 개발자라면, GitHub 계정을 먼저 설정하는 것이 좋습니다. 이미 계정이 있다면, 바로 다음 섹션으로 넘어가도 좋습니다. 하지만 학습 내용을 재검토하는 것은 언제나 좋은 방법입니다.

Git 브랜치란 무엇인가?

출처: atlassian.com

Git에서 브랜치는 프로젝트의 기본 버전과는 다른 저장소의 버전을 의미합니다. 이는 대부분의 최신 버전 관리 시스템에서 찾아볼 수 있는 기능입니다. 간단히 말해, 브랜치는 주요 개발 라인에서 벗어나 원래 라인에 영향을 주지 않고 작업을 진행하는 방식입니다.

여러 버전 관리 시스템(VCS) 도구들이 이와 유사하게 소스 코드 디렉터리의 새 복사본을 생성하는 기술을 사용합니다. 대규모 프로젝트에서는 소스 코드를 복제하는 데 시간이 걸릴 수 있지만, 이를 통해 코드 변경을 자유롭게 실험해 볼 수 있습니다.

Git의 브랜치 모델은 핵심 기능으로 여겨지며, 다른 버전 관리 시스템들과 Git을 차별화하는 주요 요소입니다. Git의 작업 방식은 간단하며, 브랜치 작업을 신속하게 수행하고 여러 작업을 전환할 수 있습니다. Git 브랜치 모델을 능숙하게 사용한다면, 개발 기술을 향상시킬 수 있는 강력한 기능과 도구를 활용할 수 있게 될 것입니다. 그렇다면, 브랜치 사용의 핵심은 무엇일까요?

Git 브랜치가 필요한 이유는?

Git 브랜치는 Git 버전 관리 시스템에서 매우 중요한 역할을 담당합니다. 다음은 Git 브랜치가 필요한 주요 이유입니다.

병렬 개발: 현대의 소프트웨어는 복잡하며, 여러 개발자가 협력하여 구축하는 경우가 많습니다. 브랜치를 사용하면 여러 개발자가 서로 다른 기능이나 수정 작업에 집중할 수 있습니다. 각 브랜치는 새로운 개발 라인으로 이어지는 관문 역할을 합니다. 특정 기능을 작업하는 동안 브랜치를 쉽게 전환할 수 있습니다.

협업: Git 브랜치를 사용하면 다른 개발자들과 동일한 코드베이스를 공유하며 협업할 수 있습니다. 새로운 브랜치를 만들고 코드를 변경한 후 공유 저장소에 푸시하면, 다른 개발자들이 여러분의 기여를 검토하고 메인 브랜치에 병합하기 전에 확인할 수 있습니다.

실험: 메인 브랜치에 영향을 주지 않고 새로운 기능을 테스트하거나 문제 해결을 위한 다양한 접근 방식을 시도할 수 있습니다. 코드의 새로운 방법이 제대로 작동하는지 확인되면, 이를 메인 브랜치에 병합할 수 있습니다.

릴리스 관리: 브랜치를 활용하여 릴리스를 관리할 수 있습니다. 작업 중인 프로젝트의 특정 릴리스에 연결된 각 브랜치를 만들 수 있습니다. 이는 메인 개발 브랜치에 영향을 주지 않고 버그를 수정하거나 변경할 수 있도록 합니다.

버전 관리: Git 브랜치를 사용하여 소프트웨어 버전을 관리할 수 있습니다. 이 경우 각 브랜치는 소프트웨어의 새로운 버전을 나타냅니다. 개발자는 각 소프트웨어 릴리스에 대한 브랜치를 생성하여 다양한 코드베이스 버전을 관리하고, 변경 사항을 추적하는 것이 좋습니다.

Git 시작하기 – 복습

이제 "왜" Git 브랜치를 사용해야 하는지에 대한 이해를 바탕으로, "어떻게" 브랜치를 생성하고 활용하는지 알아볼 차례입니다. 실습을 진행하기 전에 GitHub 계정이 설정되어 있어야 합니다. 아직 설정하지 않았다면 지금 진행해주세요.

Git의 git checkout 명령은 특정 대상의 다양한 버전 간 전환을 의미합니다. 개발자 커뮤니티에서는 '체크아웃'이라는 용어가 해당 명령의 실행을 지칭하기도 합니다. 이 명령은 브랜치, 파일, 커밋의 세 가지 대상에 작용합니다.

브랜치 체크아웃

git branch 명령을 사용하여 브랜치를 생성할 수 있으며, git checkout 명령을 사용하여 브랜치 사이를 이동할 수 있습니다. 브랜치를 체크아웃하면 작업 디렉터리의 파일이 해당 브랜치에 저장된 버전과 일치하도록 업데이트됩니다.

이는 Git에게 모든 커밋을 특정 브랜치에 기록하도록 지시하는 것입니다. 개발 과정에서 새로운 기능에 대한 전용 브랜치를 사용하는 것은 기존의 SVN 워크플로에서 전환된 것으로, 앞서 언급한 '브랜치가 필요한 이유' 섹션에 제시된 모든 상황에서 코드 작업을 용이하게 합니다.

git checkout 명령은 git clone 명령과 혼동해서는 안 됩니다. git checkout은 코드 버전 간을 전환하는 데 사용되며, git clone은 원격 저장소에서 코드를 가져오는 데 사용됩니다.

기존 브랜치 사용

작업 중인 저장소에 이미 브랜치가 있다면, git branch 명령을 사용하여 명령줄 인터페이스에서 브랜치 목록을 확인할 수 있습니다.

표시되는 브랜치 목록에서 녹색으로 표시된 브랜치는 현재 작업 중인 브랜치입니다 (Windows 운영 체제와 Visual Studio Code 사용을 가정). 브랜치 간을 전환하려면 git checkout <branchname> 명령을 사용하세요. <branchname>은 브랜치 이름을 나타내며, 작업 시 명명 규칙을 준수해야 합니다.

Git 브랜치 생성

소프트웨어 개발 중에 새로운 기능을 추가하고자 한다면, 가장 적합한 방법은 git branch 명령을 사용하여 새로운 브랜치를 생성하는 것입니다.

실제로 명령줄에 다음 명령을 입력해야 합니다.

git branch <branchname>

이는 메인/마스터 브랜치(실제 프로젝트가 실행되는 곳)에서 새 브랜치를 생성했음을 의미합니다. 이때 새 브랜치의 이름은 <branchname>으로 지정됩니다.

새로운 브랜치로 전환하려면 git checkout 명령을 사용합니다. 아래 코드를 참조하세요.

git checkout <branchname>

시간 절약을 선호하는 개발자라면, git checkout 명령에 -b 인수와 브랜치 이름을 함께 사용하여 브랜치를 생성하고 동시에 전환할 수 있습니다. 이는 이전 단계와 동일한 결과를 얻을 수 있는 방법입니다. 아래 코드를 참조하세요.

git checkout -b <branchname>

-b 매개변수는 Git에게 체크아웃을 실행하기 전에 git branch 명령을 먼저 수행하도록 지시합니다. 이제 Git 브랜치를 생성하는 데 활용할 수 있는 다른 기술들을 살펴보겠습니다.

필요에 따라 다양한 방법으로 브랜치를 생성할 수 있습니다. 몇 가지 추가적인 기술을 살펴보겠습니다.

#1. 현재 브랜치에서 브랜치 생성

현재 브랜치를 기반으로 새로운 브랜치를 생성하려면, 앞서 학습한 기술을 활용하는 것이 가장 효과적입니다.

git checkout -b <branchname>

이 방법은 자동으로 새로운 브랜치를 생성하고 해당 브랜치로 전환합니다. 터미널에 "새 브랜치 <branchname>으로 전환됨"이라는 메시지가 표시되어야 새 브랜치에 성공적으로 진입했음을 확인할 수 있습니다.

Git을 처음 사용하는 개발자라면, 꺾쇠 괄호(< >)를 제외하고 명령을 입력해야 합니다. 괄호는 예시와 설명을 위한 것이며, 혼동하거나 잘못 사용해서는 안 됩니다.

#2. 다른 브랜치에서 브랜치 생성

다른 기존 브랜치를 기반으로 새로운 브랜치를 만들려면, 시작점으로 사용할 해당 브랜치의 이름을 추가해야 합니다. 명령은 다음과 같습니다.

git branch <new branch> <base branch>

실제 예시는 다음과 같습니다.

git branch new-branch branchname

이는 new-branch가 새로운 브랜치이고, branchname이 기준 브랜치임을 의미합니다.

#3. 커밋에서 브랜치 생성

브랜치가 아닌 특정 커밋을 기반으로 새 브랜치를 만들려면, 시작점으로 커밋 해시를 제공해야 합니다. 브랜치를 생성하려는 커밋의 해시를 찾으려면 git log 명령을 실행하세요.

커밋 해시는 일반적으로 "commit"으로 시작하는 긴 문자열입니다. 커밋 해시를 사용하여 다음 명령을 실행하여 브랜치를 생성할 수 있습니다.

git branch <branch name> <commit-hash>

그런 다음, 새 브랜치로 전환할 수 있습니다.

#4. 태그에서 브랜치 생성

특정 태그를 기반으로 브랜치를 만들려면, 브랜치를 생성하려는 태그 이름을 찾으세요. git tag 명령을 실행하여 저장소에서 사용 가능한 모든 태그를 나열할 수 있습니다.

태그 이름을 확인했다면, git branch <new branch> <tag name> 명령을 실행합니다. 그런 다음, 새로운 브랜치로 전환하여 코드 변경 작업을 시작할 수 있습니다.

#5. 분리된 HEAD 상태를 사용하여 브랜치 생성

분리된 HEAD 상태를 사용하면 특정 커밋을 시작점으로 하여, 즉시 해당 브랜치로 전환하지 않고 새로운 브랜치를 만들 수 있습니다. 이 방법은 작업 중인 브랜치에 영향을 주지 않고 새로운 변경 사항을 실험할 때 유용합니다. 브랜치를 생성하려는 커밋의 해시를 찾기 위해 git log 명령을 실행하세요.

커밋 해시를 사용하여 git checkout <commit hash> 명령을 실행합니다. 이 명령은 현재 브랜치에 있지 않고, 특정 커밋을 가리키는 분리된 HEAD 상태로 이동시킵니다. 그 다음으로 git branch <branch name> 명령을 사용하여 현재 커밋을 기반으로 브랜치를 생성할 수 있습니다.

#6. 원격 브랜치에서 브랜치 생성

로컬 브랜치를 먼저 생성하여 시작합니다. 이제는 git checkout -b <branchname> 명령을 익숙하게 사용할 수 있을 것입니다. 원격 브랜치는 로컬에서 생성한 브랜치를 원격 저장소로 푸시할 때 자동으로 생성됩니다.

다음과 같이 원격으로 브랜치를 푸시하세요: git push origin <branch name>. 여기서 origin은 변경 사항을 푸시하고 브랜치를 생성하는 원격 저장소를 나타냅니다. 이 값은 원격 저장소의 이름으로 대체할 수 있습니다. 모든 것이 정상적으로 작동할 것입니다.

#7. 원격 저장소에 브랜치 생성

원격 저장소에 브랜치를 생성하려면 git fetch 명령을 실행하여 원격 저장소에서 최신 변경 사항을 가져옵니다. 최신 업데이트를 받은 후에는 새로운 브랜치를 생성할 수 있습니다. 체크아웃을 완료한 후에는 다음과 같이 새로운 변경 사항을 푸시할 수 있습니다.

git push -u <remote repo> <new branch name>

작업 시에는 origin을 사용하는 것이 좋습니다(예: 원격 브랜치에서 브랜치를 생성하는 방법). 이는 시간을 절약하고 원격 저장소 이름을 입력할 때 발생할 수 있는 오류 가능성을 줄여줍니다.

GitHub 온라인 인터페이스

명령줄에서 수행하는 모든 작업은 GitHub의 온라인 인터페이스를 사용하여 복제할 수 있습니다. 새로운 브랜치를 생성하려면 프로젝트 저장소 페이지로 이동하여 왼쪽 상단에서 현재 브랜치(보통 마스터/메인)를 확인하세요.

해당 부분을 클릭하면 사용 가능한 브랜치 목록이 나타나며, 브랜치를 찾거나 새로 생성하는 데 사용할 수 있는 텍스트 필드가 제공됩니다.

브랜치를 만들려면 텍스트 필드에 해당 이름을 입력합니다. GitHub 온라인 인터페이스는 자동화되어 있으며, 태그, 브랜치, 커밋과 같은 특정 요소를 기반으로 브랜치를 생성할 수 있습니다. Git 브랜치를 처음 사용하는 경우 GitHub의 브랜치 관련 문서를 참조하면 개발 과정에서 발생할 수 있는 문제를 줄일 수 있습니다.

마지막으로

Git 브랜치를 생성하는 여러 가지 기술을 학습했으므로, 이제 새로 습득한 기술을 소프트웨어 개발 프로세스에 통합하여 보다 원활한 Git 워크플로를 구축할 수 있습니다.

최적의 브랜치 전략은 워크플로 기준 및 이벤트 발생과 같은 팀의 요구 사항에 따라 크게 달라집니다. 예를 들어, 다른 팀원의 피드백이 필요한 경우 원격으로 브랜치를 생성하여 귀중한 기여를 할 수 있습니다.

Git 브랜치가 어떻게 소프트웨어 프로젝트를 보다 효과적이고 효율적으로 작업할 수 있도록 해주는지 살펴보았습니다. 다양한 Git 제어 옵션이 있지만, 이 글에서는 명령줄에서 Git 브랜치를 탐색하는 방법을 보여주었고, 이를 통해 Git을 더욱 자신 있게 사용할 수 있기를 바랍니다.

브랜치 생성 기술을 향상시켰다면, GitHub 브랜치 삭제에 대한 가이드를 살펴보시는 것도 좋은 방법이 될 것입니다.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.