Git WorkFlow란 깃의 작업 흐름(패턴)입니다. 중앙집중형(Centralized)방식으로 일관되고 효율적인 작업환경을 만들어서 작업할 수 있습니다.
먼저, 마스터에서 Develop Branch를 만듭니다.
Develop branch에서 Feature branch를 만들어서 각자 작업합니다.
다음은 Develop branch로 Pull Request 하는 과정입니다.
배포하기 전에 버그 수정 및 준비 후 마스터 브랜치로 올리는 과정입니다.
HOTFIX/HF1 이란?
배포 후, 급하게 고쳐야 할 경우에 씁니다. (현업에서 실제 발생하는 일)
최종적으로 배포한 것을 각자의 Branch에서 Git Pull해서 다시 작업을 진행합니다.
Git Rebase는 Git merge 작업을 대신하는 과정입니다. merge는 GitHub에 새로 추가된 버젼을 내가 하고있는 작업과 합치는 것이지만, rebase는 업데이트 된 master를 기준(base)으로 잡은 뒤 feature branch(나의 작업영역)에 base(업데이트 된 master)에 내가 작업하고 있는 branch를 붙이는 개념입니다. Rebase를 기준으로 Commit한 내용들을 하나의 Commit으로 합쳐서(수정해서) Commit을 깔끔하게 유지할 수 있습니다.
Rebase의 장점은 linear history입니다.
상위 브랜치(또는 마스터)에 합쳐질 때의 history가 선형적이고, 깔끔해집니다.
squash란?
git checkout master
git pull origin master
git checkout feature/name
git rebase -i main // git merge와 과정이 같습니다.
rebase화면에서 첫 줄을 제외하고 pick 대신 sqaush의 약자인 s로 변경합니다.
ex)
pick = description
s = description...
s = description...
다음 화면에서 commit 부분을 최종적으로 남길 하나의 commit만 두고 내용을 지워줍니다.
rebase 후 Conflict가 발생하면 어떻게 할까요?
우선, 컨플릭트를 해결하고 다음을 실행해줍니다.
git add .
git rebase --continue
문제가 해결되면 "successfully"단어를 vim에서 확인할 수 있습니다.
그 다음 push를 하고 GitHub에서 PR을 작성하면 됩니다.
git push origin feature/name