브랜치(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/)
'Codepresso' 카테고리의 다른 글
처음 시작하는 SQL 프로그래밍 강의노트(2) (0) | 2022.03.03 |
---|---|
SW 유지보수성 향상을 위한 Clean Code 강의노트 (0) | 2022.02.09 |
MySQL 입문 강의노트 (0) | 2022.02.08 |
Spring Boot 웹 개발 입문 강의노트 (0) | 2022.02.08 |
[Java 프로그래밍 초급] 강의노트 (0) | 2022.01.25 |