Git : 07. Branch 관리
지금까지 브랜치를 만들고, Merge하고, 삭제하는 방법에 대해서 살펴봤다. 브랜치를 관리하는 데 필요한 다른 명령도 살펴보자.
git branch
명령은 단순히 브랜치를 만들고 삭제해 주기만 하는 것이 아니다. 아무런 옵션 없이 실행하면 브랜치의 목록을 보여준다
지금까지 브랜치를 만들고, Merge하고, 삭제하는 방법에 대해서 살펴봤다. 브랜치를 관리하는 데 필요한 다른 명령도 살펴보자.
git branch
명령은 단순히 브랜치를 만들고 삭제해 주기만 하는 것이 아니다. 아무런 옵션 없이 실행하면 브랜치의 목록을 보여준다
가끔씩 3-way Merge가 실패할 때도 있다. Merge 하는 두 branch에서 같은 파일의 한 부분을 동시에 수정하고 Merge 하면 Git은 해당 부분을 Merge 하지 못한다. 예를 들어, 53번 이슈와 hotfix가 같은 부분을 수정했다면 Git은 Merge 하지 못하고 아래와 같은 충돌(Conflict)
메시지를 출력한다.
실제 개발환경에서 겪을 만한 예제를 보자. Branch
와 Merge
는 보통 이런 식으로 진행한다.
Git은 데이터를 일련의 snapshot
으로 기록한다.
commit
을 하면 Git
은 현 Staging area
에 있는 데이터의 스냅샷에 대한 포인터, 저자나 커밋 메시지 같은 메타데이터, 이전 커밋에 대한 포인터 등을 포함하는 커밋 개체(object)를 저장한다. 포인터로 이전 커밋을 가리키기 때문에 현재 커밋의 기준을 알 수 있다.
Git
저장소를 만드는 방법은 두 가지다. 기존 프로젝트나 디렉토리
를 Git 저장소
로 만드는 방법과 다른 서버에 있는 저장소
를 Clone
하는 방법이 있다.
Git은 파일을 Committed
, Modified
, Staged
이렇게 세 가지 상태로 관리한다.
Git
은 주로 파일에 대한 히스토리 관리가 필요한 개발자나 디자이너들이 사용하는 버전관리시스템(VCS - Version Control System)이다. 파일변화를 시간에 따라 기록했다가 이 후 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.