안경잡이개발자

728x90
반응형

  이번 시간에는 깃(Git)에서 브랜치(Branch)를 사용하는 방법에 대해서 알아보도록 하겠습니다. 깃(Git)은 동시에 여러 개발자들이 프로젝트에서 각기 다른 기능을 개발할 수 있도록 브랜치(Branch) 기능을 제공합니다. 서로 다른 브랜치는 작업을 함에 있어서 서로에게 영향을 받지 않는다는 점에서 마음 놓고 서로 다른 개발 작업을 수행할 수 있습니다.


Branch 동작 과정.xml


  브랜치의 동작 과정은 다음과 같은 예시로 표현할 수 있습니다. 기본적으로 Git 저장소를 만들면 자동으로 마스터(Master) 브랜치가 생성됩니다. 이 브랜치는 일반적으로 배포가 가능한 수준의 안정화된 버전을 포함하고 있습니다.


  그래서 별도의 브랜치를 만들어 사용하고자 한다면 체크아웃(Checkout) 명령어를 이용해야 합니다.



  한 번 예시를 들어보도록 하겠습니다.


  현재 우리는 배포 버전이 Master Branch에 있는 상황에서, 새로운 기능을 개발하고 있습니다. 새로운 기능은 Develop Branch에서 개발하고 있으며 이와 동시에 버그가 발견되어 빠르게 버그를 수정해야 하는 일이 발생했다고 해봅시다. 이 때 버그 수정은 Bug Fix Branch에서 진행하는 겁니다. 그리고 버그가 수정되는 대로 바로 Master Branch에 수정 내역을 합치고, 기능 또한 합쳐주어 결과적으로 새로운 배포 버전이 탄생하도록 개발을 진행하는 겁니다.


  그러면 합치기(Merge)가 수행되기 전까지는 안정적으로 배포가 이루어지고 있다가, 모든 기능이 합쳐진 이후에 다시 배포할 수 있으므로 개발의 안정성이 매우 뛰어나게 되는 겁니다.


  ▶ 통합 브랜치: 배포가 가능한 수준의 브랜치로 일반적으로 마스터(Master) 브랜치를 의미합니다.

  ▶ 토픽 브랜치: 특정한 기능을 위해 만들어진 브랜치로 일반적으로 마스터(Master) 브랜치 이외의 다른 브랜치를 의미합니다.


※ 브랜치 사용해보기 ※


  브랜치를 만들 때는 git branch 명령어를 이용합니다. 저는 develop이라는 이름의 브랜치를 만들어 보도록 하겠습니다. 이후에 특정한 브랜치로 전환하고자 할 때는 git checkout 명령어를 이용합니다. 체크아웃(Checkout) 이후에는 HEAD가 해당 브랜치로 이동하게 됩니다.



  위와 같이 체크아웃 이후에는 HEAD가 develop 브랜치로 가 있는 것을 확인할 수 있습니다.



  이 상태에서 소스코드에 새로운 함수 mul()을 작성해보도록 하겠습니다.



  이후에 위와 같이 커밋(Commit)을 진행해 주시면 현재 HEAD가 가리키고 있는 브랜치인 develop 브랜치에서 커밋이 진행됩니다.



  git log 명령어로 로그를 확인해 보시면 master 브랜치의 윗 부분에 develop 브랜치가 존재하는 걸 확인할 수 있습니다.



  이제 마스터 브랜치로 이동해서 develop 브랜치를 병합(Merge)할 수 있습니다.



  병합 결과 위와 같이 마스터 브랜치와 develop 브랜치가 동일한 커밋 내역을 가지게 된 걸 확인할 수 있습니다.



  결과적으로 푸시(Push)까지 진행해 주시면 원격지 저장소인 Git Hub에도 반영되는 것을 확인할 수 있습니다.



  병합이 끝난 브랜치는 git branch 명령어에서 d 옵션을 넣어 제거할 수 있답니다.


728x90
반응형