Git / Github - (2)

3201 단어 TILgitTIL

Branch

분기점을 생성하여 독립적으로 코드를 변경할 수 있도록 도와주는 모델

  • 현재 사용가능한 branch들과 현재 local branch를 보여줌
$ git branch
  • yongwoo라는 branch를 생성
$ git branch yongwoo
  • 현재 branch를 yongwoo라는 branch로 이동
$ git switch yongwoo
  • readme.md 파일을 수정하고 commit
$ git commit -a -m 'edit readme.md'
  • 현재 branch를 main branch로 이동
$ git switch main
  • 현재 branch로 명시된 브랜치(yongwoo branch)를 합침
$ git merge yongwoo
  • yongwoo branch를 삭제
$ git branch -D yongwoo
  • yongwoo remote branch를 push
$ git push origin yongwoo 

branching models

  • git flow
    • (hotfix)- master -(release)- develop - feature
    • pros: 가장 많이 적용, 각 단계가 명확히 구분
    • cons: 복잡..
  • github flow
    • master - feature
    • pros: 브랜치 모델 단순화, master의 모든 커밋은 deployable
    • cons: CI 의존성 높음. 누구 하나라도 실수했다간..(pull request로 방지)
  • gitlab flow
    • production - pre-production - master - feature
    • pros: deploy, issue에 대한 대응이 가능하도록 보완
    • cons: git flow와 반대 (master-develop, production-master)

git flow strategy

git flow 사용법

  • git 저장소를 git flow에 맞게 초기화하기
$ git flow init
  • 버그 수정 / 기능 추가를 위해 새로운 개발 (project_init) 브랜치 사용하기
$ git flow feature start project_init
  • 개발 작업이 끝나서 project_init 브랜치를 마무리하기
$ git flow feature finish project_init
  • release branch 생성하기 (0.1버전 생성)
$ git flow release start v0.1
  • release 준비 끝나면 finish를 통해 마무리하기
$ git flow release finish v0.1
  • 새로운 release가 포함된 main branch를 원격 저장소에 태그와 함께 push (현재는 develop branch)
$ git push -u origin develop
$ git push origin main
$ git push --tags

좋은 웹페이지 즐겨찾기