1. Branch

개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생깁니다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있습니다.

만약, 코드를 복사하지 않고 한 줄로 커밋할 경우 똑같은 코드를 동시에 커밋하면 충돌이 일어나지 않을까요? 이럴 때 독립적으로 개발하여 여러줄로 커밋하는 것이 브랜치입니다.

이렇게 브랜치를 생성하면 여러 줄로 커밋하면 충돌이 일어나는 시점을 찾아 해결이 가능합니다.

commit-39.png

브랜치는 하나의 기능을 가리키거나 특정 커밋을 가르키는 바로가기 같은 것 입니다. 브랜치를 생성하면 현재 커밋을 가르키는 브랜치가 생성됩니다.

특정 브랜치에서 작업중인데 새로운 커밋을 하면 브랜치는 그 새로운 커밋을 가르키게 됩니다.

기본 브랜치는 master 브랜치 입니다. git저장소를 초기화 할 때 자동으로 만들어 집니다. 이때, 'HEAD'라는 특수한 포인터가 있습니다. 이 포인터는 지금 작업중인 브랜치를 가르킵니다.

위니브

위니브

하나의 기능의 개발이 완료되면 특정 브랜치의 내용들을 master 브랜치에 합칩니다. 또 새로운 작업을 하려고 하면 master 브랜치에서 다시 새로운 feature브랜치를 생성하고 작업을 합니다.

8_Branch-2.png

8_Branch-3.png

특정 기능을 작업하고 있는데 급하게 버그를 수정해야 하는 경우가 발생합니다. 이런 경우 현재의 작업상태를 임시로 커밋해두고 이전 기능 작업중인 상태로 브랜치(작업폴더)를 변경할 수 있습니다.

버그 패치용 브랜치를 만들고 수정 작업을 합니다. 이후 작업이 완료되면 버그 패치용 브랜치의 추가된 변경 내역을 마스터 브랜치에 합칠 수 있습니다.

이런 과정을 거치면 master브랜치는 가장 최근에 배포한 소스코드의 커밋을 가르키고 있게 됩니다.

지금부터 브랜치 사용방법을 알아보겠습니다.