이번 포스팅은 Git의 최대 장점이라고 들리는(?) Branch를 알아보고 실습을 해보도록 하겠습니다.
1. Branch란?
개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다.
실습을 해보면서 어떻게 사용하는 것인지 보도록 하겠습니다.
2. 실습해보기.
1) 초기 상태.
branch를 추가하지 않은 초기의 모습을 먼저 보겠습니다.
git branch를 입력하게되면 branch의 목록이 나오고, 현재 어느 branch인지 보여줍니다.
git은 저장소를 만들면 기본적으로 'master'라는 이름의 branch를 만들어줍니다. 따라서 위에 보이는 master 브랜치는 자동으로 생성된 branch입니다.
2) 'git branch 브랜치이름' : branch를 생성하는 명령어
실습을 해보기 위해 'example1'이라는 branch를 생성했습니다.
그리고 git branch 를 입력해서 보면 현재 branch가 'example1', 'master' 이렇게 2개가 된 것을 확인할 수 있습니다.
3) 'git branch -d 브랜치이름' : 브랜치이름에 해당하는 branch를 삭제하는 명령어
'example1','master' 브랜치가 있는 상태에서 'example1' 브랜치를 삭제해보았습니다.
삭제 후 'git branch' 명령어를 통해 브랜치를 보면 'master'브랜치만 남은 것이 보입니다.
4) 'git checkout 전환하려는 브랜치 이름' : 브랜치를 전환하는 명령어
'master' 브랜치에서 'example1'으로 브랜치를 전환해보았습니다.
master에 있던 *가 example1으로 이동한 것을 볼 수 있습니다. 이것은 현재 브랜치가 'example1'이라는 것을 의미합니다.
5) 'git checkout -b 생성하고 변환하려는 브랜치 이름' : branch를 생성함과 동시에 전환하는 명령어
git checkout에 -b 옵션을 주게되면 브랜치를 생성하고 전환까지 하게 됩니다.
즉, git branch 브랜치명 → git checkout 브랜치명 : 이 과정은 'git checkout -b 브랜치명' 하는 것과 같습니다.
6) branch 전환해서 작업해보고 무슨 차이가 있는지 알아보기
<master 브랜치에서 상태 >
현재 branch는 master, example1, example2 가 있고, aaaaa.txt라는 파일이 있습니다.
git log도 위와같이 볼 수 있습니다.
이제 example1 브랜치로 전환해서 bbbbb.txt라는 파일을 생성하고, commit까지 해보겠습니다.
< example1 브랜치에서의 상태 >
example1 브랜치로 전환해서 bbbbb.txt 파일을 생성하고 commit까지 한 상태입니다.
여기서 브랜치를 다시 master로 전환하면 example1 브랜치에서 생성했던 bbbbb.txt파일과 log는 어떻게 바뀔까요?
결론을 먼저 말씀드리자면, master브랜치로 다시 전환하면 bbbbb.txt파일은 없어지고, 'add bbbbb.txt'라는 commit 로그도 없어집니다.
< example1 -> master branch로 전환 후 모습 >
위의 화면을 보시면 브랜치를 example1 -> master로 변경하고, 현재 디렉토리의 파일, git log를 볼 수 있습니다.
다시 master -> example1 으로 브랜치를 변경하고 파일의 상태와, log를 보고 포스팅을 마무리 짓겠습니다.
< master -> example1 으로 branch 다시 전환 후 모습 >
이것을 통해 branch는 각각 독립된 저장소라고 생각 할 수있습니다.
'Git' 카테고리의 다른 글
Git을 시작해보자! <7편> (branch 정보확인) (0) | 2019.02.25 |
---|---|
Git을 시작해보자! <5편> (git 명령어들의 option) (0) | 2019.02.20 |
Git을 시작해보자! <4편> (git reset,git revert) (0) | 2019.02.19 |
Git을 시작해보자! <3편> (git log, git diff) (0) | 2019.02.18 |
Git을 시작해보자! <2편> (add&commit) (0) | 2019.02.14 |