본문 바로가기
Codepresso

[실무자가 알려주는 Git 활용한 프로젝트 관리] 강의 노트

by 선의 2022. 1. 18.

브랜치(branch)

본래의 소스코드로부터 파생한 독립적인 작업 공간

최신 커밋을 가리키는 일종의 포인터

매우 가볍다 → 생성, 이동, 병합이 매우 쉽고 빠름

 

실습

cd ~/gittest
mkdir branch_test
cd branch_test
git init

현재 작업중인 브랜치 확인

git branch

master 브랜치는 커밋이 생성되어야 브랜치를 가리킬 수 있는 상태가 됨

 

HEAD

현재 브랜치를 가리키는 일종의 포인터

현재 브랜치의 마지막 커밋에 대한 스냅샷

 

브랜치 이동

git checkout <branch_name>

 

MERGE

git checkout <병합할 브랜치 master>
git merge <합칠 브랜치 issue>

fast-forward Merge: 브랜치의 위치만 최신으로 이동

 

branch 상황 빠르게 확인

git branch -v

 

브랜치 delete : 일종의 포인터 삭제

git branch -d <branch_name>

 

Git 태그의 종류

Lightweight 태그: 버전명과 같은 태그명만 남김

Annotated 태그: 태그를 만든 사람의 이름, 이메일, 태그 생성 날짜, 태그 메세지 등 저장

git tag [tag_name]

git tag -a [tag_name] -m [tag_massage]

 

태그 정보 확인

git show [v1.0]

 

특정 시점의 커밋 태그하기

1) 태깅하고자 하는 커밋의 ID값 확인

git log --oneline

2) 커밋 ID 값을 인자로 태깅하기

git tag -a v0.1 [커밋ID] -m "tag_message"

 

GitFlow 모델

master

실제 고객에게 릴리즈되는 브랜치(production)

모든 변경사항은 결국 master로 최종 반영되어야함

develop

실제 개발의 중심

모든 기능 추가 && 버그 수정 && 고객에게 배포 가능한 수준이 되면 develop의 내용이 master에 최종 반영

다음에 배포할 기능 개발하는 브랜치

feature

기능을 개발하는 브랜치

develop 브랜치로부터 분기되어 사용된(기능, 스프린트 주기 등을 기준으로)

기능 개발이 완료되거나 스프린트 주기가 종료되면 develop 브랜치로 내용 merge 후 브랜치 삭제

release

배포를 준비하는 브랜치

배포 가능한 상태가 되면 master 브랜치로 병합

점검 시 발견한 이슈에 대한 수정사항은 반드시 develop에 병합

배포 준비가 완료되면 최종 master로 병합 + tag 명시

hotfixs

배포한 버전에서 긴급하게 수정이 필요한 장애 및 버그 발생시 대응하는 브랜치

master로부터 분기되며, 수정사항은 master나 develop 브랜치에 최정 반영되어야함


코드프레소 Java 웹 개발 체험단 활동 중(https://www.codepresso.kr/)