[Prep.06]Git branch

Yun Hyuk Ko·2021년 2월 11일
0

git branch

목록 보기
1/1

git branch는 분리된 작업 영역

우리는 어떤 코드의 기준으로 여러개의 독립된 작업공간을 만들 수 있다.
여기서 말한 작업공간이란, 사본이라고 생각하면 쉽다.


그림에서 보다시피 사본에서 어떠한 작업을 해도 원본에는 영향이 가질 않는다.
"사본" 이것이 바로 branch이다. 우리는 여러개의 branch를 생성 할 수 있는데,
각각의 branch는 서로 영향을 주지 않는다. 즉, 독립된 작업 영역이다.

그렇다면, 왜 이렇게 독립된 작업 영역이 필요할까? 아래의 그림을 보자.

우리가 카페를 추천하는 어떤 어플을 만든다고 생각해보자. 우리는 일반적으로 혼자서 서비스를 개발하지 않고 팀으로 개발을 하게된다. 그럼 각자 맡은 기능들이 있을 것이다.

그림에서 보는 것처럼 4명의 인원이 각자 구현해야될 기능들이 있다. 보다시피 3명의 인원이 메인화면을 구현하는데 각자 개발중에 서로 다른 함수를 만들어서 쓰고 있다고 가정하자.

어느 누군가 "어? 이 함수는 뭐지? 지워야겠다 ㅎㅎ" 이렇게 되버리면 끔찍하다. 프로젝트 개발이 정상적으로 진행되기는 어려울 것이다.

그래서 우리는 독립적인 작업 공간이 필요하다. 우리는 이런 것을 git branch를 이용해서 해결할 수 있다.

그림에서 보다시피 하나의 원본을 베이스로 여러 개의 branch를 만들어서 각자 자신의 branch에서 각자 자신이 맡은 기능들을 작업할 수 있다. 즉, 각자의 독립된 공간에서 개발을 진행할 수 있다.

이렇게되면 각자의 기능을 개발하지만 서로의 기능에는 영향을 주지 않는다.
물론 이렇게 작업한 결과는 나중에 합치는 작업이 필요하다.

이렇게 우리는 git branch를 이용해 새로운 기능을 개발할 때, 원본에 영향을 주지 않고 다양한 시도를 하고 싶을때 역시 git branch를 이용해서 이러한 시도들을 해볼 수 있다.

[브랜치 만들기]

지금부터 어떻게 branch를 만드는지 살펴보자. 브랜치는 현재 작업공간을 베이스로 만들어진다.

그렇다면 우리는 현재 본인이 어디에서 작업하고 있는지를 항상 확인해야 한다.
즉, 내가 어떤 브랜치에 있는지를 확인해야 한다.

그 다음은 작업 공간을 옮기는 방법을 먼저 알아 볼 필요가 있다. 왜냐하면
브랜치는 항상 내가 있는 작업공간을 베이스로 만들어지기 때문이다.

내가 다른 곳을 베이스로 하고 싶을 때가 있을 것이다. 때문에 작업공간을 어떻게 옮기는지를 알아야한다.

우리는 $ git checkout <branch name>으로 작업공간을 옮길 수 있다. 즉, branch를 옮길 수 있다.

[그림을 보면서 조금 더 자세히 이해해보자.]

지금 현재 공간이 원본이라고 하자. 만약 본인이 작업공간을 브랜치1 으로 이동하고 싶다면, $ git checkout 브랜치1 이라고 터미널 창에 명령어를 입력하면 된다.

브랜치2로 이동하고 싶다면, 마찬가지로 $ git checkout 브랜치2 라고 터미널 창에 명령어를 입력하면 된다.

[브랜치 생성하기]

이제 작업공간을 옮겨 봤으니 branch를 생성하는 방법에 대해 알아보자.
브랜치를 생성하는 방법은 git branch -b <기능1> 이라고 명령어에 입력하면 된다.

여기에는 두가지의 옵션이 합쳐져 있다. 브랜치를 생성하면서 만든 브랜치로 자동으로 이동하게 된다. (기능1 branch 생성 + 기능1 branch로 작업공간 이동)

여기서 알아야 할 것은 이 두가지 옵션은 다른 것이다. 순서대로 기억하자. 먼저는 기능1의 branch가 생성이되고, 이 후 기능1로 branch가 이동하게 된다.

즉, $ git branch -b <기능1> 명령어는 두 가지 일을 하나로 합쳐서 실행을 해준다.

[만든 branch에서 돌아가 원본을 베이스로 하는 다른 branch를 만들고 싶다면?]

앞서 설명한대로 branch는 현재 위치의 작업공간을 베이스로 branch(작업공간)를 생성한다. 그렇다면 원본을 베이스로 하고싶을 때는 원본으로 돌아가서 만들면 된다.

  1. 베이스로 하고 싶은 branch로 작업공간을 옮긴다.
  2. branch를 생성한다.
    $ git checkout <베이스로 하고 싶은 브랜치명>
    $ git checkout -b <생성하고 싶은 브랜치 이름>

잘 진행이 되었다면, $ git branch 명령어를 통해 현재 자신이 위치하고 있는 작업공간 즉, 현재의 branch를 확인해보자.

작업공간의 위치는 $ git branch 명령어로 항상 확인하는 것이 좋다. 왜냐하면 기능1의 작업공간에서 기능2의 작업을 하지 않기 위해서이다

profile
기억보다 좋은건 기록이다

0개의 댓글