Git

[Git] branch에 대한 정리

mhko411 2021. 7. 27. 16:20
728x90

다른 사람들과 함께 프로젝트를 하면서 branch를 나눠서 작업하게 되었다. 이 과정에서 몇 가지 이해되지 않은 점들이 있었고 git에 대해 완벽하게 이해하고 다룰 수 있어야 협업 능력이 향상될 수 있다고 생각했다.

 

A라는 branch를 생성 후에 할당된 작업을 완료 후에 push를 진행하였다. 하지만 main 브랜치로 merge가 되지 않은 상태에서 다른 작업을 위해 B라는 branch를 생성 후에 작업을 시작했다. 이때 A에서 작업한 것을 B에서 필요하다면 어떻게 해야하는지 의문점이 생겼다. 아직 팀원들도 명확한 답을 알지 못했다.

 

따라서 branch에 대해 정확하게 이해한 후에 위의 의문점에 대한 해답을 찾고 팀원들에게 공유하고자 한다.


Branch가 무엇일까?

원격 저장소를 생성 후에 main 또는 master라는 하나의 branch가 생성된다. 하지만 여러사람이 하나의 코드를 가지고 본인의 작업을 수행하기 어려울 것이다. 따라서 main에서 뻗쳐나오는 branch를 생성하여 각각의 작업환경을 생성해야한다. 이후 branch에서 작업한 내용을 main에 merge하여 하나로 합칠 수 있다. 

아래 그림처럼 main branch에서 뻗쳐나오는 A, B, C라는 branch를 생성하였다. 그렇다면 각각 본인의 branch로 이동하여 독립적인 공간에서 개발을 진행한다.


branch 생성하기

branch를 생성할 때 팀원들끼리 규칙을 정할 필요가 있다. branch 이름을 어떻게 정할 것인지 어느 branch에 merge 시킬지 등 사전에 미리 정하도록한다. 이후 본인의 로컬 환경에서 아래의 명령어를 통해 branch를 생성한다.

$ git branch <branch name>

또는 아래의 명령어처럼 branch 생성 후 해당 branch로 이동할 수 있다.

$ git switch -c <branch name>

 

branch 전환하기

현재 작업하고있는 공간인 branch를 전환하기 위해서는 아래와 같은 명령어를 사용할 수 있다.

$ git checkout <branch name>
$ git switch <branch name>

 

branch 병합하기

본인이 작업했던 branch에서 작업을 완성시키고 main 또는 master와 같은 branch에 병합을 해줘야한다. 먼저 작업했던 branch에서 commit을 완료한 후에 main으로 이동하여 아래와 같은 명령어를 실행한다.

$ git merge <branch name>

또는 branch 내에서 add -> commit -> push 후에 github 또는 gitlab에서 MR(PR)을 요청할 수 있다.

 

branch 삭제하기

이제 merge가 완료된 branch를 아래와 같은 명령어로 삭제할 수 있다.

$ git branch -d <branch name>

지금까지는 git의 branch에 대한 기본적인 개념을 살펴봤고, 앞으로 프로젝트를 진행하면서 알게되는 부분을 정리하도록 하자.

'Git' 카테고리의 다른 글

[Git] 로컬에서 원격 저장소에 저장하기  (0) 2021.08.01