git flow init
git branch
를 치면 develop 브랜치로 자동으로 가있는 것을 확인 할 수 있음.git flow feature start {기능명}
새 기능의 개발은 ‘develop’ 브랜치에서 시작함.
touch
for _ in range(15):
print('hello')
git add
git commit
for i in range(1, 15+1):
if i%3==0:
print('fizz')
else:
print(i)
git status
체크하고git add
git commit
for i in range(1, 15+1):
if i%3==0:
print('fizz')
elif i%5==0:
print('buzz')
else:
print(i)
git status
확인하고git add
git commit
git flow feature finish {기능명}
feature
브랜치에서 작업했던 파일을 develop로 넘길 수 있음브랜치 작업 시, status 조회했을 때 불완전한 파일들이 있으면 안됨(커밋 안되는 등) 정리를 해놓고 브랜치를 병합하든지, 삭제하든지 해야함.
feature가 develop 브랜치로 머지 되었고, feature가 local 상에서 삭제되었다, 현재 나는 develop 브랜치에 있을 것이다.
기능 개발을 시작하고 끝내는 한사이클을 git flow feature start , git flow feature finish로 해본 것임
git flow release start {버전 네이밍}
위 과정처럼 피쳐 브랜치를 열고 닫고 하면서 기능 개발이 이루어졌다고 가정하고, 기능을 릴리즈 하겠다고 생각이 들때 릴리즈 스타트 하는 명령
- 버전 네이밍
- 릴리즈 할때는 버전 네이밍이 중요함 버전을 뛰어넘거나 잘못 선택하면 안 됨.
- 수정 범위가 크다, 작다로 버전 네이밍을 바꿀 수 있음
v.0.0.0
보통 네이밍은 버전을 세 자리로 둠Major, Minor, Patch
git flow release start v0.0.1
이라고 입력 후, develop 브랜치에서 릴리즈 브랜치를 시작하게 되면.git flow release finish {버전 네이밍}
git flow release finish v0.0.1
그럼 총 세 번의 vi 창이 뜸(어떤 OS는 두번 뜨기도 함)
**implement fizz, buzz**
Print fizz if i is times of 3
Print fizz if i is times of 5
otherwise, print i itself.
이제 git branch 하면 release 브랜치 없어지고, main과 develop만 있을 것
git push -u origin develop
git push origin main
git push --tags
릴리즈의 끝, Push 하기
git push -u origin develop
remote 상의 develop 브랜치는 처음 만드는 거니까, upstream set 한다. 즉, local develop이랑, remote develop 이랑 같은 것이라고 알려주는 것.git push origin main
해서 main도 push 해줌.git tag
해서 태그 확인 하고 git push --tags
다른 기능들은 또 develop 브랜치 에서 기능 개발을 하고 개발 작업물이 쌓이면 또 릴리즈 하고 메인으로 넣어주고. 이 절차대로 계속 진행하게 됨
🤨 회고
확실히 한 싸이클을 경험해보니 git flow 전략을 이해하기 수월했다. 협업 프로젝트 시에도 유용하게 사용할수 있을 것 같다.