Git branch 관리. 가지치기
통합브랜치(Integration Branch)
언제든 배포 할수 있는 안정적인 상태의 브랜치. 보통 MASTER 를 통합브랜치로 사용한다.
토픽브랜치(Topic Branch)
통합브랜치에서 파생되는 단위 작업등을 위한 브랜치. 여러개 생성가능. 통합브랜치를 메인으로 하여 생성하고 작업이 완료 되면 다시 병합된다.
A successful Git branching model
새로운 브랜치 생성
> git branch <브랜치명>
삭제 할경우는 -d 옵션을 사용
> git branch -d <브랜치명>
브랜치 목록 전체 확인
> git branch
브랜치명
* master
아마 이전에 만든적이 없다면 위처럼 나올것이다. master 의 색이 다르고 * 표시가 있다.
remote 저장소의 branch 를 확인하려면 -r 옵션을 사용한다. 로컬과 원격 모두 확인하려면 -a 를 사용한다.
> git branch -r
> git branch -a
좀더 상세한 내역 및 추적상태나 push, pull 사용시 -u 옵션으로 저장된 매핑 상태등을 보기를 원한다면 다음 명령을 입력한다.
> git remote show origin
remote 저장소의 head 포인터 추적상태는 다음명령으로 확인 할 수 있다.
> git ls-remote --heads origin
사용할 브랜치를 선언 (checkout 사용) 한후 목록확인
> git checkout <브랜치명>
> git branch
* 브랜치명
master
색과 * 표시가 변경되었다. ( HEAD 가 브랜치로 이동된다. )
아래처럼 b 옵션을 입력하면 생성함과 동시에 checkout 한다.
> git checkout -b <브랜치명>
파일의 수정후 master 로 이동하고, 병합을 해보자. (fast forward merge)
> git checkout master
> git merge <브랜치명>
파일의 충돌이 일어날 경우. 해당부분을 찾아 수정하고 다시 add, commit 해준다.
이전 커밋의 취소
> git reset --hard HEAD~
옵션에 따른 변경 여부
옵션 |
HEAD 위치 |
INDEX |
작업트리 |
soft |
O |
X |
X |
mixed (기본) |
O |
O |
X |
hard |
O |
O | O |
** HEAD 를 사용하여 버전이동시
HEAD^ , HEAD~ , HEAD~1 등은 전단계
HEAD^^ , HEAD~2 등은 전전단계.. 로 사용할 수 있다.