브랜치를 만드는 명령어는 다음과 같습니다.
git branch 브랜치_이름
임의로 브랜치 이름을 지었습니다. 현재 리포지토리의 브랜치를 확인하기 위해서 git branch
명령을 이용합니다.
git branch
확인해보면, 현재 기본 작업공간인 master 아래에 방금전에 새로 만든 spring이라는 이름의 브랜치가 생성되었음을 확인할 수 있습니다. 그리고 마스터 표시 앞에 *
기호가 붙어있는데 이는 현재 작업하고 있는(선택되어있는) 브랜치를 의미합니다.
한 가지 더 다른점은 'git log'명령을 통해서 커밋 기록을 확인하게 되면 새로 만든 브랜치 정보 또한 추가되게 됩니다.현재 리포지토리에 master, spring 브랜치가 존재하고있고, HEAD가 master를 가리키고 있으므로 master 브랜치에서 작업 중이다 라고 해석이 가능합니다.
다시 파일을 살펴보면 다음과 같습니다. 현재 master, spring, summer 브랜치가 있고 커밋된 파일이 하나 있습니다.(summer는 조금전에 인위적으로 하나 더 추가했습니다.)이번에는 브랜치의 분기지점에 대해서 알아보겠습니다. 위 사진에서 a1을 한 번 커밋한 상태에서 브랜치를 두 개로 분기했기 때문에 한 줄에 여러 브랜치들이 등장했습니다. 즉, 이곳이 브랜치가 나뉜 분기점이라는 말인데요. 그렇다면 파일을 다시 수정한 다음에 커밋하고 브랜치를 하면 또 다른 분기지점이 생기겠죠?
넘어가기 전에 cat a1.txt,(혹은 다르게 지은 파일명)을 통해 a1 파일의 내용을 한 번 확인해두고 기억해 둡시다.
a1.txt파일을 수정하고 커밋한 후 이번엔 'autumn'이라는 이름의 커밋을 만듭니다. 그리고 git log로 확인해보면 다음과 같은 내용이 출력됩니다.보시면 이전커밋에는 summer, spring 브랜치가 표시되고 방금 새로 커밋한 로그에는 master와 automn이 표시되어있습니다. 이렇게 커밋 기록에 따른 분기를 확인할 수 있었습니다.
분기한 브랜치는 머지(merge, 병합)이라고 하는 과정을 거치는데요. 이 병합 과정이 좀 복잡하다보니 추후에 따로 다루도록하겠습니다.
브랜치들을 만들었으니 이번에는 각 브랜치들에서 작업하기 위해 이동하는 방법에 대해 알아보겠습니다. 브랜치를 이동하기 위해서는 git checkout
명령을 이용합니다.
git checkout 브랜치이름
브랜치 이동은 checkout 명령을 통해 이동이 가능합니다. checkout명령을 이용해 'summer'브랜치로 이동해보도록 하겠습니다.Switched to branch 'summer'
라는 메세지와 함께 브랜치가 이동되었습니다. 브랜치가 이동했다는 것은 디렉토리 정보 옆에 ()에 써져있는 문구로 확인이 가능합니다. 기존에는 master라는 문구가 써져있었는데 summer로 변경된 것을 확인할 수 있습니다.
추가적으로, 위에서 a1파일의 내용을 기억해 두시라고 했었는데, 지금 확인해보면 분기를 만들때 summer 브랜치는 a1파일이 한 번 더 수정되기 이전 시점이었습니다. 그러므로 summer 브랜치로 이동한 상태에서 a1.txt파일을 확인해보면 수정 이전의 파일 상태를 갖고 있음을 볼 수 있습니다.