GIT

GIT 브랜치

츠르e 2017. 12. 21. 13:37

참고문헌 : https://git-scm.com/book/ko/v2

브랜치 (branch)


모든 버전 관리 시스템은 브랜치를 지원한다. 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다.

사람들은 브랜치 모델이 Git의 최고의 장점이라고, Git이 다른 것들과 구분되는 특징이라고 말한다. 당최 어떤 점이 그렇게 특별한 것일까. Git의 브랜치는 매우 가볍다. 순식간에 브랜치를 새로 만들고 브랜치 사이를 이동할 수 있다. 다른 버전 관리 시스템과는 달리 Git은 브랜치를 만들어 작업하고 나중에 Merge 하는 방법을 권장한다. 심지어 하루에 수십 번씩해도 괜찮다. Git 브랜치에 능숙해지면 개발 방식이 완전히 바뀌고 다른 도구를 사용할 수 없게 된다.

브랜치의 장점

  • 상호독립 다수 로컬 브랜치
  • 아주 쉽게 문맥 전환
  • 역할 구분에 활용하기 좋다 (배포/개발/테스트)
  • 구현하려는 기능 단위 브랜치도 Good!

master 브랜치

  • 지금까지 작업한 단일 브랜치
  • 주 작업영역

현재 브랜치 확인

$ git branch

브랜치가 가지고 있는 최종 커밋본까지 확인

$ git branch -v  

새 브랜치 만들기

$ git branch testing

현재 브랜치 상황

HEAD

각 브랜치는 특정 (최종) 커밋을 가리킴 HEAD는 현재 브랜치를 가리킴 결국, HEAD는 현재 브랜치의 최종커밋을 가리킴

브랜치 전환

$ git checkout testing  

브랜치 변경 유의사항 => 브랜치를 전환하면 작업 디렉토리 내용도 함께 바뀜

브랜치 merge

master에도 testing 브랜치의 변경내역을 반영하기 위해서 merge 필요

$ git merge testing  

merge 되돌리기

$ git reset --hard 커밋ID  

단, --hard 옵션은 이전 작업을 지우는 것이기 때문에 조심해서 사용해야 한다.