독립적인 작업을 위한 Branch

Hyun·2021년 10월 15일
0

깃 & 깃허브

목록 보기
4/7

Branch

독립적으로 어떤 작업을 진행하기 위한 개념으로, 작업 영역(단위)으로 생각하면 된다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있다.

협업하여 개발할때 개발자들은 동일한 소스코드를 함께 공유하고 다룬다. 동일한 소스코드 위에서
어떤 개발자는 버그를 수정하고, 또 다른 개발자는 새로운 기능을 추가하기도 한다. 이와 같이
여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 할때, 각각 서로 다른 버전의 코드가 만들어 질 수 밖에 없다. 또한 코드를 병합하는 과정에서 코드의 모든 부분을 확인해야 하며, 코드를 수정할때 수정할 필요가 없는 부분을 잘못 건드릴 우려도 있다.

이럴 때 브랜치를 사용하면 여러 개발자들이 동시에 다양한 작업을 할 수 있게 된다. 각자 독립적인 작업 영역(저장소) 안에서 마음대로 소스코드를 변경할 수 있다. 이렇게 분리된 작업 영역에서 변경된 내용은 나중에 브랜치의 원래의 버전과 비교해 하나의 새로운 버전으로 만들어질 수 있다.

또한 이렇게 만들어진 브랜치는 다른 브랜치와 병합(merge)함으로써, 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있다.

Branch 사용 흐름

여러 명이서 동시에 작업을 할때 다른 사람의 작업에 영향을 주거나 받지 않도록 메인브랜치에서 자신의 작업 전용 브랜치를 만든다. 그리고 브랜치에서 각자 작업을 진행한 후 작업이 끝난 사람은 메인브랜치에 자신의 브랜치의 변경 사항을 적용한다. 이렇게 함으로써 다른 사람의 작업에 영향을 받지 않고 독립적으로 특정 작업을 수행하고 그 결과를 하나로 모아 나갈 수 있다.

출처: backlog.com

실습

GIT-CLASS 를 생성한 후, 버전관리를 위해 git init 명령어를 실행해준다. 현재의 브랜치는 자동적으로 master 브랜치이다. 브랜치 작업을 할 때에는 한번이라도 commit 을 해야 한다.

my_branch 라는 이름을 가진 새로운 브랜치를 생성한 후, my_branch 로 브랜치를 이동해준다.

  • git branch: 현재 브랜치 목록을 볼 수 있다. 초록색 브랜치는 자신이 속한 브랜치를 말한다.
  • git branch <브랜치명>: 새로운 브랜치를 생성한다.
  • git checkout <브랜치명>: 해당 브랜치로 이동한다.

my_branch.txt 파일을 생성하고 내용을 입력한 후, add & commit 을 해준다. 그 후 git log 를 통해 my_branch 브랜치의 버전 목록을 확인하면 my_branch 브랜치의 커밋과 master 브랜치의 commit 이 함께 있는 것을 볼 수 있다.

ls 명령어를 통해 확인할 수도 있다. (현재 my_branch 브랜치)

브랜치를 병합하기 전에 "어떤 브랜치를 어디로 병합할 것인가" 를 확실히 해야 한다. 합치기 전에 병합의 결과가 되는 대상으로 먼저 checkout 해줘야 한다.

  • git merge <합치고 싶은 브랜치명>: 자신이 속한 브랜치에 합치고 싶은 브랜치를 병합한다.

정상적으로 master 브랜치에 my_branch 브랜치가 병합된 것을 볼 수 있다.

profile
better than yesterday

0개의 댓글