여러 개발자들과 협업할 때 필요한 git.. 그 동안은 무난하게 사용했었는데,
git rebase
를 다시 사용하게 되었다..
그러나 한동안 사용안해서 다 까묵.. 🥲🥲
다시 공부해서 나를 위해 정리하는 git rebase
.. 😅😅
develop
(or master or main)에서 branch
를 만들어 열심히 작업하다 보면,
현재 작업하는 branch가 develop에 비해 커밋이 낮아지게 된다.
이럴 경우 develop를 최신화해서 현재 작업하는 branch를 병합야 하는데, 그럴 경우 rebase
를 사용한다.
rebase 명령어를 사용하여 불필요한 커밋을 하나로 squash 할 수 있다.
git checkout -b backup/브랜치명
git push -u origin backup/브랜치명
git checkout feature/브랜치명
git checkout develop(master)
git pull
git checkout feature/브랜치명
git rebase -i develop
// squash 및 커밋 메세지 작업 후
git push --set-upstream origin feature/브랜치명
rebase
하는 동안 squash
하기
1) 가장 오래된 커밋을 pick 하기
2) 다른 커밋 메세지는 가장 오래된 commit 기준으로 squash 한다
3) Esc ➡️ :wq
로 저장하고 창에서 빠져나오기!
4) 최종적으로 이 rebase된 커밋의 내용을 작성하는 에디터가 하나 더 나오는데, 이 때
:wq
로 저장하고 창에서 빠져나온다충돌 발생 시 에디터에서 충돌 해결 후 --continue
를 반복하되, commit을 해줄 필요는 없다
git add .
git rebase -—continue
git rebase —-abort
git checkout develop
git merge 브랜치명
git push
일부 커밋으로 돌아가야(?) 할 경우 사용...
git reset HEAD^
// 이동할 만큼 이동하고
git push -f
git log
한 줄로 간편하게 보기git log --oneline
git reset --soft 해시
git push -f
내용 | 주 용도? 차이점 |
---|---|
--soft | branch 이동하기 |
--hard | commit 되돌리기 |
git stash // 새로 생성한 파일은 임시저장에서 제외
git stash -u // 새로 생성한 파일도 임시저장
git stash apply // 가장 마지막 임시저장 값을 불러온다. 해시값으로도 불러오기 가능