Git flow & Rebase

흑이·2022년 1월 11일
0

1. Basic flow


메인을 기반으로 메인과 같은 역할을 하는 Develop 브랜치 생성

Develop 에서 feature 브랜치 생성하여 작업

Release/ v2.0.0

  • 배포전에 QA과정을 거쳐야 함
  • Bugfix를 마치고 Develop 에 병합
  • Develop에서 또 feature 브랜치 생성하여 기능들 추가

Hotfix

  • 바로 수정 사항을 고쳐야 하는 상황

특정 시점으로 돌아가야할 상황이 발생 하기 때문에
Commit 메세지를 명확하게 작성 해야한다.

  • 머지 커밋 메세지
    브랜치가 특정 브랜치에 머지될 경우 자동으로 생성 되는 메세지


rebase 사용하게 되면 불필요한 merge commit 제거

같은 작업을 한 commit들 끼리 모아줄 수 있음(ex. sign-iun에 대한 commit 메세지)

해당 브랜치의 base commit을 확인하는 방법 : git merge-base main feature/sign-in (필수 아님)


명령어 Squash

커밋 메세지들 여러개가 있는데, Squash 명령어를 사용하여 하나의 커밋 메세지로 만들 수 있다.


하나의 커밋들에게는 고유한 해쉬값이 있다.
ex) 해쉬 값이 1, 2, 3
보통 push 를 하게 되면 3번쨰가 최신일걸 알기 떄문에 오류가 발생하지 않지만

예를 들어 ? rebase를 하게 되면 갑자기 100?으로 되어 충돌이 발생하게 됨 우리는 100번쨰가 최신인걸 알지만 컴퓨터에서는 이해할 수 없다?

그렇기 떄문에 git push origin feature/login -f 옵션을 사용해야 함(강제로 force push)

실습

git checkout main
main 에서 pull 을 받음(항상 최신 상태 유지)
git checkout feature

git rebase -i main
pick "메세지" 를 확인 할 수 있다.

pick 을 s 로 변경(squash)
:wq (저장)



그 후 commit message 수정



successfully 확인
git log로 commit 메세지가 합쳐진걸 확인


git push origin feature -f



conflict 해결
git add .
git re base --continue

0개의 댓글