이제 직접 명령어를 입력해보면서 branch에 대해 익히는 시간을 가지려고 합니다.


0. 사전 준비

먼저 저장소를 만들어 줍니다.

$ mkdir tutorial
$ cd tutorial
$ git init
Initialized empty Git repository in /Users/junkyuu/Desktop/tutorial/.git/

그리고 tutorial 폴더 안에 myfile.txt 라는 파일도 만들어 주고 commit합니다.

파일 내용을 아래와 같이 해주겠습니다.

branch 명령어 연습용
$ git add myfile.txt
$ git commit -m "first commit"
[master (root-commit) a73ae49] first commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 myfile.txt

1. branch 만들기

//branch 만들기
$ git branch <branchname>

//branch 확인하기
$ git branch

issue1이라는 branch를 만들어 주겠습니다.

$ git branch issue1

그리고 확인해주면 다음과 같습니다.

$ git branch
  issue1
* master

*이 붙어있는 것이 현재 선택된 branch 입니다.

현재의 상태를 그림으로 표현하면 다음과 같습니다.

스크린샷, 2019-10-06 14-05-17.png

2. branch 전환하기

$ git checkout <branch>
$ git checkout issue1
Switched to branch 'issue1'

master에서 issue1으로 전환했습니다.

이를 그림으로 표현하면 다음과 같습니다.

스크린샷, 2019-10-06 14-06-59.png


Tip!

$ git checkout -b <branch>

checkout 명령어에 -b옵션을 주면 branch 생성과 전환을 한번에 할 수 있습니다.


이제 branch를 issue1으로 전환했으니 commit하게 되면 issue1의 변경 사항으로 기록됩니다.

이제 myfile.txt 파일에 다음과 같이 문장을 추가하겠습니다.

branch 명령어 연습용
add: 변경 사항을 만들어서 인덱스에 등록해보기

그리고 commit을 해주겠습니다.

$ git add myfile.txt
$ git commit -m "add 설명을 추가"
[issue1 b2b23c4] add 설명을 추가
 1 files changed, 1 insertions(+), 0 deletions(-)

여기까지의 상황을 그림으로 표현하면 다음과 같습니다.

스크린샷, 2019-10-06 15-12-34.png

3. branch 병합하기

이제 issue1의 변경 사항을 master에 병합하겠습니다.

master branch에 issue1을 넣기 위해서는 우선 'HEAD'가 master에 위치하도록 해야합니다.

그러므로 branch를 전환하겠습니다.

$ git checkout master
Switched to branch 'master'

병합하기 전에 myfile.txt 파일을 열어 내용을 확인하겠습니다.

branch 명령어 연습용

2. branch 전환하기에서 해주었던 파일 편집은 issue1에서 실행했기 때문에 master 로 전환한 현 시점에서는 그 내용이 변경되어 있지 않아야 합니다.

이제 병합을 시작하겠습니다.

$ git merge issue1
Updating 1257027..b2b23c4
Fast-forward
 myfile.txt |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

이제 master가 가리키는 commit이 issue1과 같은 위치로 이동했습니다.
Git (Basic) - 4에서 설명한 것과 같이 이를 fast-forward merge라고 합니다.

여기까지의 내용을 그림으로 표현하면 다음과 같습니다.

스크린샷, 2019-10-06 15-17-48.png

이제 myfile.txt 파일을 열어 내용을 확인해보겠습니다.

branch 명령어 연습용
add: 변경 사항을 만들어서 인덱스에 등록해보기

변경 사항이 적용된 것을 확인할 수 있습니다.

4. branch 삭제하기

issue1의 내용이 모두 master로 통합되었기 때문에 이제 issue1 브랜치가 필요없습니다.

branch를 삭제하려면 -d옵션을 사용하면 됩니다.
$ git branch -d <branchname>

$ git branch -d issue1
Deleted branch issue1 (was b2b23c4).

잘 삭제되었는지 확인해보겠습니다.

$ git branch
* master

master branch만 남은 것을 확인할 수 있습니다.

여기까지를 그림으로 표현하면 다음과 같습니다.

스크린샷, 2019-10-06 15-21-48.png