master 브랜치의 소스를 서비스 중 추가 개발할 항목이 생김.
master 브랜치에서 가지를 만든다. 새 브랜치(dev)를 생성함.
dev 브랜치에서 추가 개발을 진행 한다.
추가 개발 진행 중 서비스 중인 항목에서 이슈가 발생함.
이슈를 먼저 해결하고 배포해야 하는 상황.
마찬가지로 master 브랜치에서 새 브랜치(hotfix)를 만든다.
hotfix 브랜치에서 이슈를 해결한다.
커밋 > 푸시
deploy 서버에서 git pull 한다.
hotfix 브랜치로 checkout 한다.
hotfix 브랜치로 서비스 시작.
마스터에 머지하기
master 브랜치에서 hotfix 브랜치를 merge를 한다.
PUSH 한다.
머지가 완료 되었다.
deploy에서 checkout master 후 git pull 하여 머지확인.
음... master에 hotfix 머지가 잘 되었군...
안전하게 hotfix를 dev25에도 머지한다.
checkout dev25 > merge hotfix
중단 되었던 추가 개발을 dev25 브랜치에서 다시 시작한다.
추가 개발을 완료하였다.
서비스 한다.
마스터에 머지 후 서비스 하려고 한다.
checkout master > dev25 merge >push
deploy > checkout master > git pull
hotfix 소스와 dev25 소스가 적용됨.
개발 끝.
사용이 끝난 브랜치는 삭제.
local 브랜치와 remote(origin) 브랜치 모두 삭제.
삭제 해볼까?
$ git branch -a
develop2.0
develop3.0
develop5.0
develop6.0
hotfix2.5
hotfix2.8
hotfix4.8
hotfix5.8
* master
remotes/origin/HEAD -> origin/master
remotes/origin/branch1
remotes/origin/develop3.0
remotes/origin/develop5.0
remotes/origin/master
# 로컬 삭제
$ git branch -d develop2.0
$ git branch -d develop3.0
...
$ git branch -d hotfix5.8
# 리모트 삭제
git push origin --delete branch1
git push origin --delete develop3.0
git push origin --delete develop5.0
리모트에서 삭제된 브랜치 업데이트 하기
git remote prune origin
git remote update --prune
git fetch --prune
'IT지식 > 개발' 카테고리의 다른 글
[Linux] awk 명령어 사용하기. awk '{print}' (0) | 2020.02.16 |
---|---|
[Linux] grep으로 검색한 문자열에서 특정 문자 추출. uniq 중복 제거 안될 때. (cut uniq sort ) (0) | 2020.02.14 |
[Linux] 원하는 디렉토리/파일/문자열 데이터를 추출해보자. (find | xargs grep) (0) | 2020.02.14 |
[GIT] 특정 파일만 받기 (0) | 2020.02.14 |
[mysql] DB에 한글이 insert 안 될 때 테이블의 charset를 변경하세요. (0) | 2020.02.13 |