개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생깁니다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있습니다.
만약, 코드를 복사하지 않고 한 줄로 커밋할 경우 똑같은 코드를 동시에 커밋하면 충돌이 일어나지 않을까요? 이럴 때 독립적으로 개발하여 여러줄로 커밋하는 것이 브랜치입니다.
이렇게 브랜치를 생성하면 여러 줄로 커밋하면 충돌이 일어나는 시점을 찾아 해결이 가능합니다.
브랜치는 하나의 기능을 가리키거나 특정 커밋을 가르키는 바로가기 같은 것 입니다. 브랜치를 생성하면 현재 커밋을 가르키는 브랜치가 생성됩니다.
특정 브랜치에서 작업중인데 새로운 커밋을 하면 브랜치는 그 새로운 커밋을 가르키게 됩니다.
기본 브랜치는 master 브랜치 입니다. git저장소를 초기화 할 때 자동으로 만들어 집니다. 이때, 'HEAD'라는 특수한 포인터가 있습니다. 이 포인터는 지금 작업중인 브랜치를 가르킵니다.
위니브
하나의 기능의 개발이 완료되면 특정 브랜치의 내용들을 master 브랜치에 합칩니다. 또 새로운 작업을 하려고 하면 master 브랜치에서 다시 새로운 feature브랜치를 생성하고 작업을 합니다.
특정 기능을 작업하고 있는데 급하게 버그를 수정해야 하는 경우가 발생합니다. 이런 경우 현재의 작업상태를 임시로 커밋해두고 이전 기능 작업중인 상태로 브랜치(작업폴더)를 변경할 수 있습니다.
버그 패치용 브랜치를 만들고 수정 작업을 합니다. 이후 작업이 완료되면 버그 패치용 브랜치의 추가된 변경 내역을 마스터 브랜치에 합칠 수 있습니다.
이런 과정을 거치면 master브랜치는 가장 최근에 배포한 소스코드의 커밋을 가르키고 있게 됩니다.
지금부터 브랜치 사용방법을 알아보겠습니다.