git이 제공하는게 같아도 회사마다 사용하는 방법이 다르다.
git flow는 branch가 총 5개
왜 develop을 기준으로 두고 feature을 까서 개발하고 master 따로 두는가?
-master를 master로 쓴다면 배포용으로 결정나서 배포를 하려고 했는데 master에 새로운 commit이 들어오면 그것까지 배포를 해야 하는데 검증되지 않은 commit이므로...
그리고 배포때문에 개발을 멈추지 않아도 됨
develop에서 배포하기로 팀끼리 결정하면 release브랜치를 까서 테스트를 한다. 테스트용 서버 올려놓고.
버그를 발견하면 release branch에서 고쳐서 올린다.
왜?
develop은 계속해서 개발하고 있으니까 올리면 안된다.
다 고치면 master에도 merge시켜주고 다시 develop에도 merge시켜준다. 거기에는 release에서 고친 코드가 없으니까.
hotfix를 하기 위한 branch
master기준으로 생성.
사용하고 있는거 가지고 와야 하니까.
hotfix에서 고치고 master갔다가 develop으로
develop은 master이후 코드가 있어서 고칠 수 없다.
develop에도 merge해줘야 해.