Git 브랜치(branch) 생성, 전환, 머지, 그리고 충돌 관리 방법
Git의 강력한 기능 중 하나는 브랜치를 통한 버전 관리입니다. 이 글에서는 Git에서 브랜치를 생성, 전환, 삭제하는 방법과 브랜치 머지 및 충돌 해결 과정에 대해 알아보겠습니다.
브랜치 생성하기
새로운 기능 개발이나 버그 수정을 위해 독립적인 작업 공간이 필요할 때 브랜치를 생성합니다.
git branch [브랜치명]
이 명령은 새 브랜치를 만듭니다. 브랜치는 현재 작업 중인 버전의 스냅샷입니다.
브랜치 전환하기
다른 브랜치로 전환하려면 checkout 명령을 사용합니다.
git checkout [브랜치명]
이 명령은 지정한 브랜치로 작업 디렉토리를 전환합니다.
브랜치 삭제하기
더 이상 필요하지 않은 브랜치는 삭제할 수 있습니다.
git branch -d [브랜치명]
이 명령은 브랜치를 안전하게 삭제합니다. 브랜치가 다른 브랜치와 병합되지 않았다면 삭제가 거부됩니다.
브랜치 머지하기
브랜치에서의 작업이 완료되면 메인 브랜치(예: master)에 머지하여 작업을 통합할 수 있습니다.
git merge [브랜치명]
현재 브랜치로 지정한 브랜치의 변경 사항을 머지합니다.
충돌 해결하기
머지 과정에서 같은 부분을 다르게 수정한 경우 충돌이 발생할 수 있습니다. Git은 충돌이 발생한 파일을 표시해주며, 충돌을 해결한 후에 다시 커밋을 해야 합니다.
git merge [브랜치명]
만약 충돌이 발생하면, Git은 충돌이 발생한 부분을 표시해주고 수동으로 수정하도록 안내합니다. 충돌을 해결하고 나면, 충돌이 해결된 파일을 다시 스테이징하고 커밋하여 머지를 완료합니다.
예시

# 먼저 "feature"라는 새로운 브랜치를 생성합니다.
PS C:\blueshare\Git> git branch feature
# 해당 브랜치로 전환합니다.
PS C:\blueshare\Git> git checkout feature
Switched to branch 'feature'
# 'feature' 브랜치에서 변경 사항을 만들고 이를 추가하고 커밋한다고 가정해봅시다.
PS C:\blueshare\Git> echo "<p>New feature!</p>" >> feature.html
PS C:\blueshare\Git> git add feature.html
PS C:\blueshare\Git> git commit -m "Add feature.html with new feature"
# 기능 개발을 마친 후, 'master' 브랜치로 다시 전환합니다.
PS C:\blueshare\Git> git checkout master
Switched to branch 'master'
# 이제 'master' 브랜치에 'feature' 브랜치를 머지합니다.
PS C:\blueshare\Git> git merge feature
Updating d90f210..1b7bdfc
Fast-forward
feature.html | Bin 0 -> 44 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 feature.html
# 만약 머지 중에 충돌이 발생했다면, 충돌을 해결하고 커밋을 해야 합니다.
# 여기서 우리의 머지는 "fast-forward"였습니다. 즉, 'feature' 브랜치를 만든 이후 'master' 브랜치에 변경 사항이 없었기 때문에,
# Git이 자동으로 'feature' 브랜치를 머지할 수 있었습니다.
# 마지막으로, 더 이상 'feature' 브랜치가 필요하지 않다면 삭제할 수 있습니다.
PS C:\blueshare\Git> git branch -d feature
Deleted branch feature (was 1b7bdfc).
이러한 작업 흐름은 협업 환경에서 흔히 볼 수 있는데, 여기서 기능 개발, 버그 수정 또는 다른 변경 사항들이 메인 개발 라인(보통 ‘master’ 또는 ‘main’ 브랜치)으로 통합되기 전에 독립적인 브랜치에서 개발됩니다.
결론
브랜치와 머지는 효과적인 팀 협업과 개인 작업 관리를 위한 핵심 Git 기능입니다. 브랜치를 사용하여 독립적으로 작업을 진행하고, 완료된 작업은 메인 브랜치에 머지함으로써 코드 베이스의 안정성을 유지하고 모든 팀원과의 일관성을 보장할 수 있습니다. 또한, 충돌 해결 기능을 통해 코드의 일관성을 유지하며, 여러 개발자가 동시에 동일한 코드 베이스 위에서 작업할 수 있는 능력을 제공합니다. 이러한 기능들을 통해 Git은 복잡한 개발 프로젝트에서도 코드의 품질과 협업의 효율성을 높이는 데 크게 기여합니다.
더 많은 정보를 원하신다면, Git 공식 웹사이트(https://git-scm.com/) 을 참고하세요.
함께 보면 좋은 게시글
- Git 소개 및 윈도우에 설치하는 방법
- Git 시작하기: 사용자 정보 설정과 기본 에디터 변경 방법
- Git 기초: 로컬 저장소 초기화(init)와 원격 저장소 클론(clone) 방법
- Git 기본 명령어(add, commit, status, log)와 작업 흐름
- GitHub로 원격 저장소 관리하기: Push, Pull, Fetch 기본 사용법
이 글이 도움이 되셨다면 공유 부탁 드립니다.