Today I Learned/git 뿌시기

Git 시작하기 (3) - branch 만들기

하나719 2020. 11. 4. 23:19
반응형

브랜치는 왜 필요한가?

한가지 작업물을 여러 사람이 같이 수정하다보면, 다양한 버전의 결과물이 생기게 됩니다.

예시 상황)

팀원 2명이 함께 PPT 만드는 작업을 하다가 10페이지까지는 같이 만들었는데 그 이후로는 각자 집에가서 만들기로 했습니다.

a가 11~ 13page, b가 14~17 page 를 만들기로 했습니다.

이때 a와 b는 10페이지까지 만들어진 버전1에서 각각 새로운 버전의 ppt를 만들어온 뒤, 합쳐주게 됩니다.

이렇게 여러 사람이 작업물을 나누어 진행할 때 각자 로컬 저장소에 마음대로 작업할 수 있도록 해주는 것이 branch 입니다.

 

브랜치란?

여러 작업물이 동시에 다른 작업물에 영향을 주지 않으면서 진행될 수 있도록하는 기능입니다.

아래 그림처럼 하나의 버전 (Master) 에서, branch를 추가해서 내 작업을 진행하고 이를 다시 master branch 에 합쳐나갈 수 있습니다. (Merge)

이미지 출처: https://www.nobledesktop.com/learn/git/git-branches

가장 간단한 브랜치 만들어보기

상황: Master에 base maunal을 작성하고, 브랜치를 만들어서 apple 버전의 manual을 추가해보자

1) master branch에 Base Manual 파일 만들고 작업해서 커밋하기

- 파일 만들기: nano manual.txt

- base 입력 > 컨트롤 + X > Y > Enter

- staging에 올리기: git add manual.txt

- commit 하기: git commit -m 'base manual'

 

2) 브랜치 만들기

- apple 브랜치 만들기: git branch apple

 

3) 작업할 브랜치로 이동하기

- apple 브랜치로 바꾸기: git checkout apple

 

* 주의: 브랜치를 만들고 나서, git log로 살펴보면 아직 head가 master를 가르키고 있는 것을 알 수 있다. 브랜치를 만들고 나서, 작업할 브랜치로 이동시켜주는 작업을 해야한다.

checkout 전
checkout 후 branch switch 됨

4) 작업 추가하기!

- 작업 추가하기: nano manual.txt

- apple 입력 > 컨트롤 + X > Y > Enter

- add & commit: commit message 'apple manual'

 

5) 작업 확인하기

head가 apple branch를 가르키는지 확인

- git log

 

작업 파일 내용 확인

- cat manual.txt

 

6) master으로 checkout 해서 base manual 확인

apple manual 작업하기 전 base manual을 확인해보고 싶습니다.

checkout으로 master branch로 이동합니다.

- master branch로 이동: git checkout master

 

master branch 로 이동해서 git log를 확인해보니 head가 master를 가르키고 있고, apple branch에서 작업한 내용이 없는 것을 확인할 수 있습니다.

manual.txt 파일 안을 살펴보니 apple 이 입력되어 있지 않습니다!! 

 

이렇게 브랜치로 이전 버전에서 새로운 버전을 만들어나갈 수 있습니다.

다음에는 이 새로운 버전들을 어떻게 합치는지 살펴보겠습니다.

 

 

반응형