세션진행: 승현님
git flow와 rebase란?
develop 브랜치 - 우리가 지금까지 썼던 메인 브랜치 같은 역할 (master or main)
release 브랜치 - 배포를 하기 위한 브랜치 (버그를 찾아 commit)
버그를 찾아서 해결 할 때 마다 develop브랜치에 PR하기
다 버그를 찾았으면 Main브랜치로 이동해서 진짜 배포
배포를 하고 난 후 서버에 오류가 났다면??
일단 main 브랜치에서 또다른 브랜치(hot fix)를 파서 수정 후 바로 다시 배포
rebase란?
다시 베이스를 지정한다.
기준이 되는 마지막 커밋의 베이스를 바꿔버린다.
지금까지는 두 브랜치를 병합 할 때 머지를 사용,
하지만 머지를 할 때 마다 머지 커밋 메시지를 남겨야함 (불필요한 머지 커밋 생성)
git rebase
리베이스는 커밋이 한꺼번에 충돌 날 가능성이 있다.
리모트 메인 pull 받기 (git pull origin main)
내가 push할 작업 브랜치로 이동 (checkout)
git rebase -i main을 진행 ( 메인의 마지막 커밋을 내 베이스로 하겠다 )
아래와 같은 에디터가 나온다.
커밋이 순서대로 나오고 pick이 쫙 나온다 (지금까지 커밋내역)
제일 위 커밋은 그대로 pick 두고
밑에 꺼는 pick 대신 s로 바꾸기
esc 후 :wq로 나가기
또다른 에디터가 나온다. (최종메시지 작성)
esc 후 :wq로 나가기
커밋은 2~3개를 맥시멈으로 해야 컨플릭트 해결하기 좋다. 그 후 리베이스 하기!!
리베이스 후 푸시를 할 때는 히스토리가 무조건 달라지기 때문에 포스 푸시하기!
리베이스는 꼭 꼭 푸시 전에 하기!
git reset soft : 변경된 것을 스테이징 안된 상태로 커밋시점으로 돌아가기
git reflog : 깃 레퍼런스 로그를 확인할 수 있음.