Git 브랜치(branch) 생성, 전환, 머지, 그리고 충돌 관리 방법

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/) 을 참고하세요.

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤