git의 혁신-branch/branch 만들기
23 Feb 2019 | github 지옥에서 온 gitgit의 혁신 - branch
- branch는 나무의 가지를 이용한 비유로, 작업을 분기해서 처리하는 경우에 대한 시적인 표현
- 어떠한 파일을 수정할 때 뒤에 버전마다 번호를 붙이는 경우, file.txt, file2.txt, … 처럼 표현 가능
- 하지만 중간에 해당 파일을 누군가에게 다른 목적으로 줘야 할 경우 file2_client.txt처럼 별도로 표현
- 이러한 것처럼 새로운 가지를 뻗쳐나가는것을 branch라고 함
- 즉, 작업이 분기되는 경우를 새로운 branch를 만드는 것이라고 이해하면 됨
- 분리, 중지/합침, 계속 버전관리 등을 가능하게 함
- git 외에 다른 프로그램도 있으나 어렵고 용량이 많이 차지됨
- 하지만 git은 이러한 단점들을 개선하여 매우 효율적인 branch 시스템을 구축
branch 만들기
- 새로운 디렉터리에
git init
으로 초기화 f1.txt
라는 파일을 만든 후 내용을 적고 저장git add f1.txt
를 통해 버전관리를 시작하고,git commit -m "commit message"
로 커밋f1.txt
파일의 내용을 추가하고 저장git commit -am "commit message"
를 이용해 바로 add 후 commit 메세지를 작성하여 커밋- 단,
git add
로 버전관리를 시작하지 않은 파일은 위의 바로 add후 커밋하는 기능 사용 불가능
- 단,
-
git log
로 확인하면 두 개의 버전이 생성된것을 확인 할 수 있음 -
원래 소스코드를 변경하지 않으면서 따른 customizing되는 기능이 추가되어야 할 경우 branch를 새로 만들기(분기) 딱 좋은 상황임
- branch를 만들기 위해
git branch
를 치면, master가 출력됨- 현재 master(기본) branch에서 작업중인것을 확인 할 수 있음
git branch branch_name
로 새로운 branch를 만듦(git branch exp
)git branch
로 확인해보면 master와 exp가 생겼고, 현재 master branch에서 작업중이므로 master 앞에 별표가 존재함git checkout exp
로 현재 branch를 exp로 바꾸면, 별표가 exp로 옮겨진 것을 볼 수 있음git log
로 log를 확인해보면 master일때와 동일한 출력을 확인 할 수 있음f1.txt
의 내용을 다시 변경 후 저장한 다음git add f1.txt
후git commit -m "commit message"
로 커밋- 다음으로
git log
로 확인(커밋 된 내용 확인됨) git checkout master
로 branch 변경 후git log
로 확인해보면f1.txt
의 내용은 변하지 않고,git log
로도 변경된 내용이 반영되지 않은것을 확인 할 수 있음- 즉,
f1.txt
파일이 어느 branch에 속해있느냐에 따라 내용이 완전히 달라지게 됨 - 명령어 모음
git branch
: 브랜치의 목록을 볼 때git branch "새로운 브랜치 이름"
: 브랜치를 생성할 때git branch -d
: 브랜치를 삭제할 때git branch -D
: 병합하지 않은 브랜치를 강제 삭제할 때git checkout "전환하려는 브랜치 이름"
: 브랜치를 전환(체크아웃)할 때git checkout -b "생성하고 전환할 브랜치 이름"
: 브랜치를 생성하고 전환까지 할 때