Merge 스트레스 최소화 하기
gitflow 사용시 Merge 스트레스를 최소화 하기 위해서는 develop 브랜치가 업데이트 될때 마다 자신의 feature 브랜치에 develop 브랜치를 머지해줍니다. 이렇게 하면 나중에 자신의 feature 브랜치를 develop에 머지할때 충돌 없이 머지할 수 있습니다.
Merge대신 Rebase 사용하기
Merge대신에 Rebase를 사용하면 한줄로된 이쁜 그래프를 볼 수 있습니다. git flow를 사용하면 필연적으로 브랜치가 굉장히 많아지고 복잡해 지기 때문에 추후 추적을 위해서 rebase를 사용하는 것이 관리에 유용합니다.
다만 merge에 비해서 충돌시 해결이 어렵기 때문에 git flow를 처음 적용하는 팀일 경우 merge로 먼저 시작해보는 것을 추천드립니다.
자신이 현재 작성하고 있는 Branch에서 develop 브랜치로 rebase한다음에 develop 브랜치에 머지를 하게 되면 깔끔한 commit tree를 볼 수 있습니다.
일반적으로 알려져있는 Pull Request(PR)입니다.
$ git branch [브랜치명]
$ git branch [분기 브랜치명] [뿌리 브랜치명]
$ git checkout [뿌리 브랜치]
$ git merge [뿌리 브랜치에 병합 할 브랜치]
$ git init
//첫번째 커밋 무조건 필수
$ echo 'hello world' >> readme.md
$ git add .
$ git commit -m "main1"
//브랜치 a, b, c 생성
$ git branch a
$ git branch b
$ git branch c
//<a 브랜치로 이동 및 폴더/파일 생성>
$ git checkout a
$ mkdir a
$ cd a
$ echo 'hello1' >> a.txt
$ cd ..
$ git add .
$ git commit -m 'a1'
//</a 브랜치로 이동 및 폴더/파일 생성> 과정을 a부분을 b, c로 변경하여 반복
$ git checkout main
$ git merge a
$ git merge b
$ git merge c
$ git checkout [뿌리 브랜치에 병합 할 브랜치]
$ git rebase [뿌리 브랜치명]
$ git branch -D [브랜치명]
$ git branch -m [브랜치명] [새로운 브랜치명]
$ git checkout [이동 할 브랜치명]
$ git checkout -b [생성 및 이동 할 브랜치명]
$ git branch
$ git branch -v
: 상세정보까지 확인
$ git branch --merged
: 병합한 branch 목록을 확인
$ git branch --no-merged
: 병합하지 않은 branch 목록을 확인
병합하지 않은 커밋을 담고 있는 브랜치는 git branch -d
명령으로 삭제되지 않는다. 병합하지 않은 브랜치를 강제로 삭제하려면 -D 옵션으로 삭제한다.