팀 개발을 위한 Git, GitHub 시작하기(정호영, 진유림 지음)으로 공부한 내용을 정리한 글입니다.

branch 없이 커밋 한다면 기본 branch인 master의 커밋이 됨master 커밋은 한 줄로, 시간 순으로 쌓이며 각 커밋들은 이전 커밋을 가리키고 있음
branch라는 새로운 작업 줄기를 생성하여 병렬적으로 연결해야 함branch는 일종의 포인터로 해당 branch에서 생성한 커밋 중 가장 최신 커밋을 가리킴branch가 가리킬 수도 있음git checkout을 통해 Master Commit 2로 이동했다면 HEAD는 Master Commit 2를 가리키고 있음HEAD가 master branch의 포인터와는 다른 커밋을 가리킨다면 HEAD는 Detached HEAD 상태가 됨master branch에는 직접 커밋하지 않음branch는 feature/[기능 이름]으로 생성함feature branch에서 기능 개발이 끝나면 master branch에 합침feature branch는 삭제branch를 생성할 때 기준(base)이 될 커밋으로 이동하기 위한 기능Branch 합치기(merge)는 두 버전(커밋)의 합집합을 구하고 하나의 branch
에 속하도록 만드는 것을 말함
branch가 가리키도록 함Conflict이 발생함Conflict이 발생할 경우를 대비해 일반적으로 먼저 feature branch로 master branch의 커밋을 병합함feature branch로 병합했을 때 Conflict이 발생하면 Conflict을 해결하고 커밋 한 뒤, 해당 커밋을 master branch와 병합함Conflict를 해결한 커밋은 Fast-forward로 master branch와 합쳐짐Fast-forward도 아니고 Conflict도 발생하지 않는 경우 두 커밋을 합집합한 새로운 Merge Commit이 생성됨branch 병합을 요청하는 메시지를 보내는 GitHub의 기능base branch로 compare branch의 커밋이 병합되는 형태pull request가 승낙되면 GitHub를 통해 병합이 진행되므로 병합 후 내 로컬 저장소로 pull하는 과정이 필요함1.2.6 -> 2.0.0)1.2.6 -> 1.3.0)1.2.6 -> 1.2.7)Release: 프로그램을 사용자들이 쓸 수 있도록 배포하는 것Tag: 코드 버전 등 커밋에 간단한 태그를 붙일 때 사용하는 기능