Git & GitHub 강좌/3. Git 브랜치

Git 브랜치 생성 및 전환

_Blue_Sky_ 2024. 10. 6. 08:29
728x90
728x90

Git 브랜치: 개발의 유연성을 높이는 강력한 도구

 

Git은 버전 관리 시스템으로, 소프트웨어 개발 과정에서 코드 변경을 추적하고 관리하는 데 필수적인 도구입니다. 이 중에서도 브랜치는 Git의 가장 강력한 기능 중 하나로, 개발자들이 서로 독립적으로 작업하고, 다양한 기능을 동시에 개발하며, 안전하게 코드를 관리할 수 있도록 돕습니다.

브랜치란 무엇인가?

브랜치는 소스 코드의 특정 시점을 가리키는 포인터라고 생각할 수 있습니다. 마치 책의 목차에서 각 장이 다른 내용을 담고 있듯이, Git의 브랜치는 각기 다른 기능이나 버전의 코드를 담고 있는 독립적인 작업 공간입니다.

주요 용도:

  • 다양한 기능 동시 개발: 각 기능을 별도의 브랜치에서 개발하여 충돌 없이 작업 가능
  • 실험적인 기능 개발: 메인 코드에 영향을 주지 않고 새로운 기능을 시험적으로 개발
  • 버그 수정: 메인 코드를 중단시키지 않고 버그를 수정하기 위한 전용 브랜치 생성
  • 특정 시점의 코드 복원: 필요한 경우 이전 버전의 코드로 쉽게 돌아갈 수 있음

브랜치 생성하기

새로운 브랜치를 생성하려면 git branch 명령어를 사용합니다.

git branch <새 브랜치 이름>
 

예를 들어, "feature1"이라는 새로운 기능을 개발하기 위한 브랜치를 생성하려면 다음과 같이 입력합니다.

git branch feature1
 
728x90

브랜치 전환하기

생성된 브랜치로 작업하려면 git checkout 명령어를 사용하여 브랜치를 전환해야 합니다.

git checkout <브랜치 이름>
 

예를 들어, 방금 생성한 "feature1" 브랜치로 전환하려면 다음과 같이 입력합니다.

git checkout feature1
 

브랜치 생성과 동시에 전환:

-b 옵션을 사용하면 브랜치 생성과 전환을 한 번에 수행할 수 있습니다.

git checkout -b <새 브랜치 이름>
 

브랜치 목록 확인

현재 존재하는 모든 브랜치를 확인하려면 git branch 명령어를 단독으로 실행합니다.

git branch
 
  • 앞에 * 표시가 되어 있는 브랜치가 현재 작업 중인 브랜치입니다.

브랜치 병합하기

다른 브랜치에서 작업한 내용을 현재 브랜치에 합치려면 git merge 명령어를 사용합니다.

git merge <병합할 브랜치 이름>
 

예를 들어, "feature1" 브랜치에서 작업한 내용을 "main" 브랜치에 병합하려면 다음과 같이 입력합니다.

git merge feature1
 

병합 충돌:

두 브랜치에서 동일한 파일의 같은 부분을 수정한 경우 병합 충돌이 발생할 수 있습니다. 이 경우, 충돌나는 부분을 수동으로 해결해야 합니다.

브랜치 삭제하기

더 이상 필요 없는 브랜치는 git branch -d 명령어를 사용하여 삭제할 수 있습니다.

git branch -d <삭제할 브랜치 이름>
 

주의: 현재 작업 중인 브랜치는 삭제할 수 없습니다.

브랜치 관리 전략

  • main 브랜치: 주로 배포 버전을 관리하는 안정적인 브랜치
  • develop 브랜치: 다음 배포 버전을 위한 개발이 이루어지는 브랜치
  • feature 브랜치: 각 기능을 개발하기 위한 브랜치
  • hotfix 브랜치: 긴급한 버그 수정을 위한 브랜치

결론

Git의 브랜치 기능은 개발 팀의 생산성을 향상시키고 코드 품질을 유지하는 데 매우 중요한 역할을 합니다. 브랜치를 효과적으로 활용하면 복잡한 프로젝트도 체계적으로 관리할 수 있습니다.

추가적으로 알아두면 좋은 것들

  • 리베이스 (rebase): 브랜치의 기반을 다른 커밋으로 변경하는 작업
  • 원격 저장소: 로컬 저장소의 변경 사항을 원격 저장소에 반영하는 방법
  • Pull Request: 코드 변경 사항을 다른 개발자에게 검토 요청하는 기능

 

728x90
728x90

'Git & GitHub 강좌 > 3. Git 브랜치' 카테고리의 다른 글

Feature Branch, Master Branch 개념  (0) 2024.10.06
Rebase  (0) 2024.10.06
충돌 해결  (0) 2024.10.06
브랜치 병합 (merge)  (0) 2024.10.06