만약 프로젝트에 새로운 기능을 추가하고자 한다. 동시에 기존의 프로젝트에서 발생하는 버그와같은 수정사항을 고쳐야 하는 상황이다. 그렇다면 다른 방향의 두 가지의 작업을 함께 진행 하여야하는데 만약 새로운 기능을 추가하는 작업이 취소되거나 수정되어 기능을 추가하기 전의 상태로 돌아가야하는 상황이 발생할 수 있다. 하지만 이 때 Git을 통해 이전의 상황으로 돌아갈 경우 동시에 작업하던 프로젝트의 수정 작업 역시 사라지고 이전 상태로 돌아가는 문제가 발생한다. 이때 Git의 branch 개념이 필요하다.


STEP01.

상단 메뉴의 Branch 버튼을 클릭한다.


STEP02.

새롭게 만들 Branch의 이름을 쓰고 Create Branch 버튼을 누른다.


STEP03.

다음과 같이 하나의 리포지토리에 두 개의 브랜치(master, AddNewMethod)가 생성되었다.

<AddNewMethod 브랜치>


<master 브랜치>


STEP04.

먼저 SourceTree에서 AddNewMethod 브랜치를 선택한 후 프로젝트의 코드를 수정하고 commit을 해본다.

<AddNewMethod 브랜치 선택 후 subXY 메소드 추가>


<AddNewMethod 브랜치에 새로운 버전(subXY) 생성>


STEP05.

다음으로 master 브랜치를 선택한 후 프로젝트의 코드를 수정하고 commit을 해본다. 여기서 master 브랜치를 선택할 경우 아래와 같이 AddNewMethod 브랜치에 commit한 수정사항이 사라진다.

<master 브랜치 선택 후 사라진 subXY 메소드>


<master 브랜치 선택 후 mulXY 메소드 추가>


<master 브랜치에 새로운 버전(mulXY) 생성>


STEP06.

아래와 같이 2개의 다른 브랜치에 각각의 버전이 생성되었다.

<master 브랜치>


<AddNewMethod 브랜치>


이렇게 새로운 branch를 생성하게 되고 프로젝트의 새로운 기능 추가는 새로운 branch에서, 기존 프로젝트의 버그 수정은 기존 master branch에서 작업해줌으로써 두 개의 작업이 동시에 수행가능하다. 이로인해 만약에 상황 발생 시, 두 작업이 서로 영향을 받지 않으면서 revert 나 reset 같은 이전상태로 되돌리는 작업이 가능하고 또한 지금까지 해왔던 작업을 취소할 수 있게 된다.

Posted by gangju
,