Learn & Run

Git & Sourcetree - Branch를 이해하고 만들어보기 본문

Collaboration/Git

Git & Sourcetree - Branch를 이해하고 만들어보기

iron9462 2021. 1. 11. 23:14

 

목표

 

이번 포스팅에서는 Git에서의 브랜치(Branch)의 용어를 이해해보고 사용 이유에 대해서 알아보도록 합니다.

 

 

 

하나의 버전안에서 안정적인 작업과 안정적이지 않은 작업을 동시에 진행하는 도중에, 미래가 불분명하거나 되돌리고 싶은 부분에 대해서 Reset과 Revert을 이용하고 싶은 충동이 들 수 있습니다. 하지만, 생각보다 쉬운 상황은 아닙니다. 프로젝트가 거대해지고 관리하는 파일들이 많다는 가정하에 우리가 되돌리고 싶은 부분만을 오려내는 작업을 하는 것은 쉽지 않습니다. 해결책으로 같은 버전의 프로젝트를 복사하여 안정적인 작업과 안정적이지 않은 작업을 분리해서 하는 것이 좋지 않을까하는 생각이 들 수도 있습니다. 결국, 원본과 카피된 프로젝트에 각각 하고자했던 일들을 잘 마무리 했다고 가정해봅시다. 이제 프로젝트를 하나로 합쳐야하는 상황이 오게됩니다. 과연 이 상태에서 어떻게 프로젝트를 합쳐야하는지에 대한 또 다른 문제가 발생하게 됩니다. 이것 또한 프로젝트가 단순하게 파일이 하나라고 한다면, 문제가 크진 않겠지만, 거대한 프로젝트라고 한다면 일일히 다 복사 붙여넣기를 하시겠습니까? 이러한 모든 문제를 해결하기 위해서 우리는 Git에서 제공하는 Branch를 이용해봅니다. Branch를 통해서 마치 두 개의 프로젝트를 따로 작업을 하는 것과 같은 효과를 내면서 동시에 이 모든 작업을 원본 프로젝트로 매우 간편하게 병합해주는 기능을 쉽게 사용할 수 있습니다. 병합하는 것은 다음 포스팅에 올릴 계획입니다.

 

위의 텍스트 파일은 너무 간단하게 보이지만, 우리가 하는 프로젝트가 거대하다고 가정하고, 2번째 단락과 3번째 단락을 하나의 프로젝트 내에서 진행하는 것이 아닌, Git에서 제공하는 Branch를 이용해서 좀 더 세련되게 작업을 진행해보는 것이 목표입니다. 또한 위의 상황처럼 프로그래밍을 해 나간다면 어떠한 문제점이 도사리고 있을지에 대해서 다시 한 번 생각해 보도록 합니다.

 

 

 

1. 브랜치 만들기 

 

  • 브랜치를 만든 현재 버전을 잘 기억하도록 합니다.

test 브랜치가 만들어진 후에 test 브랜치가 선택된 상태가 됩니다.
master 브랜치에서 안정적인 작업, 취소될 가능성이 없는 작업을 하기위해 더블클릭하여 브랜치를 전환하도록 합니다. 

 

 

 

2. master 브랜치에서 안정적인 작업을 진행한 후 Commit하기

 

  • master 브랜치에서는 일상적이고 안정적인 작업을 하고 있다고 가정합니다.

master 브랜치에서 Commit이 완료된 상태를 나타냅니다.

 

 

 

3. test 브랜치로 이동하기 (더블 클릭으로 이동)

 

  • test 브랜치로 이동하여 test.txt 파일을 열어 확인해본 후 master 브랜치가 선택되었을 때랑 어떠한 차이점이 있는지 알아봅니다.

master 브랜치의 test.txt 파일에서 작업한 것들이 사라진 것을 확인할 수 있습니다.
test 브랜치에서는 안정적이지 않은 작업, 취소될 가능성이 있는 작업을 진행하고 있다고 가정합니다.
Commit후 Sourcetree를 보면 빨간색 가지는 master에서 뻗어나온 것을 확인할 수 있습니다. 또한 master브랜치와 test브랜치의 부모가 가리키고 있는 것을 확인할 수 있습니다. 이렇게 나누어진 브랜치들은 프로젝트를 Copy하고 각각 다른 작업을 하고있는 것 같은 효과를 나타내는 것을 확인할 수 있습니다.

 

 

 

4. 브랜치 바꾸어가며 확인해보기

 

  • 브랜치를 바꿔가며 test.txt파일이 어떻게 바뀌는지 다시 확인해봅니다. 브랜치를 이용하여 우리는 프로젝트를 Copy하지 않고 각각 다른 파일들을 수정할 수 있다는 것을 확인할 수 있습니다.
  • 브랜치를 이용하지 않고 하나의 프로젝트 내에서 안정적인 작업과 안정적이지 않은 작업들을 동시에 진행했을 때랑 브랜치를 이용하여 각각 작업들을 진행했을 때 어떠한 점이 차이가 있는지 확인해 보도록 합니다.