[TIL] Git Workflow & Rebase

이나현·2021년 8월 18일
0

개발지식

목록 보기
9/14

프로젝트를 관리하는 다른 명령어 : rebase

5가지 브랜치

main - develop - feature -release - hotfix

1) 개발 단계에서 완료된 코드가 develop으로 감
2) develop에서 통과되면 test를 돌림
3) test에서 통과를 하면 develop에서 release로 배포를 함
4) release가 통과 완료되면, main으로 합침
5) 배포를 했는데 문제가 생기면, hotfix 브런치 생성 후 문제 해결하고 main에서 바로 합치기

rebase 사용

  • 더러운 commit을 정리해서 깔끔하게 쓰기 위해 rebase 사용

    이제 더이상 merge를 안한다!
    merge의 문제?
    1) 불필요한 merge commit 생성
    2) 복잡한 프로젝트 history

rebase란?

  • commit 내 base를 변경하여, commit history를 일렬로 잘 정리해준다.
    1) 불필요한 merge commit 제거
    2) 깔끔한 프로젝트 history

=> commit이 3-4개가 쌓이면 rebase를 해서 커밋을 없애주자!

rebase 진행 방법

[새로운 작업을 모두 마치고 push 하기 전]
1. main branch로 이동하여 remote main을 pull
2. 내가 push할 feature branch로 이동
3. git rebase -i main

[rebase 하는 동안 squash 진행 시]
1. 가장 오래된 commit을 pick
2. 다른 커밋 메시지는 가장 오래된 commit을 기준으로 squash
3. 커밋의 작업내역이 없어지는 것이 아님
4. Esc > :wq! 저장하고 에디터에서 빠져나온다.

[rebase 성공 시]
create ~~ file in feature/ ~~ > successfully ~~
git log 확인 > push

[충돌이 날 때]
1. 충돌난 파일을 찾아서 해결
2. git add .
3. commit은 하지 않는다.
4. git rebase --continue를 진행한다.
5. 멈춰있던 rebase가 진행된다.

[rabase 후 push할 때 생기는 오류 ]
1. rebase는 commit history를 정리해 history가 달라질 수 있다.
2. git은 history가 다른 branch는 push가 어려움
3. 'git push origin feature/login-f' -f옵션을 사용해서 force push 진행

profile
technology blog

0개의 댓글