이제 직접 명령어를 입력해보면서 branch에 대해 익히는 시간을 가지려고 합니다.
먼저 저장소를 만들어 줍니다.
$ 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
//branch 만들기
$ git branch <branchname>
//branch 확인하기
$ git branch
issue1이라는 branch를 만들어 주겠습니다.
$ git branch issue1
그리고 확인해주면 다음과 같습니다.
$ git branch
issue1
* master
*
이 붙어있는 것이 현재 선택된 branch 입니다.
현재의 상태를 그림으로 표현하면 다음과 같습니다.
$ git checkout <branch>
$ git checkout issue1
Switched to branch 'issue1'
master에서 issue1으로 전환했습니다.
이를 그림으로 표현하면 다음과 같습니다.
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(-)
여기까지의 상황을 그림으로 표현하면 다음과 같습니다.
이제 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라고 합니다.
여기까지의 내용을 그림으로 표현하면 다음과 같습니다.
이제 myfile.txt 파일을 열어 내용을 확인해보겠습니다.
branch 명령어 연습용
add: 변경 사항을 만들어서 인덱스에 등록해보기
변경 사항이 적용된 것을 확인할 수 있습니다.
issue1의 내용이 모두 master로 통합되었기 때문에 이제 issue1 브랜치가 필요없습니다.
branch를 삭제하려면 -d
옵션을 사용하면 됩니다.
$ git branch -d <branchname>
$ git branch -d issue1
Deleted branch issue1 (was b2b23c4).
잘 삭제되었는지 확인해보겠습니다.
$ git branch
* master
master branch만 남은 것을 확인할 수 있습니다.
여기까지를 그림으로 표현하면 다음과 같습니다.