본문 바로가기

플밍 is 뭔들/GIT

03. 브랜치(Branch)

※ 브랜치란?

소프트웨어를 개발할 때에 개발자들은 동일한 소스코드를 함께 공유하고 다루게 됩니다.
동일한 소스코드 위에서 어떤 개발자는 버그를 수정하기도 하고 또 다른 개발자는 새로운 기능을 만들어 내기도 하죠.
이와 같이 여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 할 때에는 각각 서로 다른 버전의 코드가 만들어 질 수 밖에 없습니다.
이럴 때, 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능이 바로 '브랜치(Branch)' 입니다.
각자 독립적인 작업 영역(저장소) 안에서 마음대로 소스코드를 변경할 수 있지요.
이렇게 분리된 작업 영역에서 변경된 내용은 나중에 원래의 버전과 비교해서 하나의 새로운 버전으로 만들어 낼 수 있습니다.


※ 브랜치 만들기



※ 브랜치 병합(Merge)
     1. 다른 브랜치로부터 합처질 브랜치(원본)를 선택한다. 위의 그림으로 치면 master 브랜치가 선택되어 있다(글씨가 더 두껍고 앞에 동그라미가 되어있다)
     2. 병합 되어질 브랜치 마우스 우클릭 후 현재 브랜치로 병합되어질 브랜치이름 병합을 클릭 (위의 그림이라면 실험을 master에다 병합한다.)
    
     주의사항
     - 병합시 중복된 같은부분을 동시에 수정하면 꼬일 수 있으므로 동시에 서로 같은 부분을 고처서 병합하지 않도록 주의하는게 좋겠다. 왠만하면 충돌을 일이키지 않도록 하기


※ 충돌 해결
     서로 같은곳을 수정했을 때 버전관리 시스템이 자동으로 병합 해 줄 수 없기때문에 우리에게 직접 하라고 위임해준다. 
     어떻게하면 이런 충돌문제를 해결할 수 있을까?
     충돌시 생기는 기호
     1. <<<<<<< HEAD
                    (코드 내용) (원본 브런치의 내용, 합처짐 당하는 브런치의 내용)
          =======  
                    (코드 내용) (합처진 브런치의 내용)
          >>>>>>> 실험(병합브랜치이름)

     이 기호를 보고 필요에 따라 필요한 기능을 지우거나 놔두면 된다. (물론 충돌시 생기는 기호는 지워줘야된다.)
     그런후 수정한 내용을 커밋을 해준다.

※ 충돌의 최소화
     충돌은 버전관리를 하면서 피할 수 없다. 그렇기 때문이 충돌이 일어나기전에 미리 예방하거나 충돌이 일어나도 작은 범위에서 일어날 수 있도록 주의해야한다.
    
     * 충돌을 최소화하는 방법
     같은 뿌리에서 나온 브랜치중 원본이 아닌 브랜치는 언젠가는 마스터 브랜치에 병합이 될것이다. 그렇기 때문에 원본 브랜치와 자주 동기화(merge) 해주면 충돌을 줄일수 있다.
     (원본을 merge하는 방식을 반대로 해준다. 즉 위의 그림으로 따지면 실험브랜치를 선택 한후 master 브랜치와 merge 한다.)

     

'플밍 is 뭔들 > GIT' 카테고리의 다른 글

05. 협업  (0) 2017.01.12
04. 원격저장소  (0) 2017.01.12
02. 되돌리기  (0) 2017.01.12
01-3. 버전 만들기(commit)  (0) 2017.01.12
01-2. 저장소 만들기  (0) 2017.01.12