git의 rebase는 여러 곳에서 다양하게 쓰이는 유용한 명령어입니다.
우리가 프로젝트를 진행하면서 master branch에서 최신화 받아온 branch를 합치는 명령어는 merge 였지만 일반적으로 두 가지 방법을 사용합니다.
(rebase: 같은 작업을 하는 commit 끼리 모으기)
순서
⓵ git add .
⓶ git commit -m "메세지"
⓷ git checkout master 👉 git pull origin master (최신화 작업)
⓸ git checkout branch명 👉 git rebase -i master
⓹ 가장 오래된 commit을 pick 하고 나머지는 squash 합니다.
⓹번의 상세설명
commit을 할 때랑 똑같이 에디터 창이 뜬다. 그리고, 각각의 commit 내역 앞에 pick 이라는 키워드가 적혀져 있는 것을 확인 할 수 있는데 최상단 commit 내역은 빼고 나머지 commit들만 pick 을 s 로 바꿔줍니다.(s === "squash")
✅여기서 중요한 것👏🏻
만약에, conflict가 났을 경우에, 충돌 해결한 다음 git add . 👉 git rebase --continue 를 합니다.
git commit -m 가 아닙니다.❌
git rebase --continue : 리베이스 진행git rebase --about : 리베이스 중단⓺ 저장하고 나갑니다. (또는 명령어 :wq 를 사용합니다
⓻ 이제, 커밋 메세지를 수정하는 에디터 창이 뜹니다.
⓼ 수정하고 저장하고 나옵니다.
⓽ git push origin branch명 --force 작성 합니다.
(한 번 rebase 적용한 다음 push 한 경우 그 다음부터는 --force 가 적용됩니다.)