new TIL. git flow & rebase

유자탱자🍋·2021년 4월 3일
0

git은 프로젝트 파일을 변경 사항을 추적하는 시스템이며,
github은 프로젝트에 필요한 모든 파일과 코드의 히스토리를 함께 공유하는 호스팅 서비스다.

2주 동안 프로젝트를 진행해보니, 생각보다 많은 branch, PR, 그리고 commit message가 쌓인 것을 확인할 수 있었다.

그동안 우리 굉장히 열심히 했구나... 라고 느낄 수 있었지만, 한편으로는 과연 history를 제대로 파악할 수 있을까? 라는 의구심이 들기 시작했다.

이에 대한 해결책으로 git flow & rebase를 들수 있다.

📌 Git Flow

The Gitflow Workflow defines a strict branching model designed around the project release. This provides a robust framework for managing larger projects. [출처]

purposes of the branches

  • master : used for production releases
  • develop : contains stable features for the next release
  • feature : used for developing certain functions
  • release : used for isolating and stabilizing the release
  • hotfix : severe bug fixed for production



📌 Rebase

협업하는 개발자가 프로젝트의 history를 원활하게 파악하기 위해서는 rebase 작업이 필요하다. 다양한 branch에서 작업들이 이루어진다면 불필요한 merge commit이 발생하고, 그렇다면 github의 효율성을 낮추기 때문이다.

Rebase는 내 commit의 base를 변경하여, commit history를 일렬로 잘 정리해줍니다.

  • 해당 브랜치의 base commit을 확인하는 방법 : git merge-base main branchname

Rebase Process

  1. 새로운 작업을 마친 후 push 하기 전, main(master) branch에서 pull 받는다.
    git checkout main git pull origin main

  2. 작업한 branch로 이동하여 git rebase -i main

  3. squash : use commit but meld into previous commit
    가장 오래된 commit message를 pick하고 나머지는 squash. 그후 esc + :wq!

  4. 최종적으로 rebase된 commit message를 수정하는 과정. 현재까지의 작업 내용을 정리하여 작성한다. 그후 esc + :wq!

    commit message 수정 : git commit --amend

  5. git log로 확인 후 최종 push! git push origin branchname -f

0개의 댓글