git rebase
git
쓰는 꼴
git rebase [-i] [--onto <base>] <upstream>내 커밋을 다른 기준 위에 다시 얹습니다 — 해시가 새로 생기므로 남이 이미 받아 간 브랜치에는 rebase하지 않고 merge를 씁니다.
자주 쓰는 옵션
| 옵션 | 뜻 |
|---|---|
| -i | interactive: reorder, squash, reword, drop commits |
| --onto <base> | move the range onto a different base |
| --continue | carry on after fixing a conflict |
| --abort | put the branch back exactly as it was |
| --skip | drop the commit that will not apply |
| --autostash | stash uncommitted work and put it back afterwards |
| --autosquash | apply fixup!/squash! commits automatically |
예시
git rebase mainreplays your commits on top of main, giving them new hashes
git rebase -i HEAD~3squash or reword the last three commits
git rebase --abortcancel a rebase and return to the original branch
되돌리는 방법이 여럿이라 헷갈립니다 — 가리키는 곳을 옮기는 것과 새 커밋을 얹는 것은 다릅니다.
읽는 방법
- 대괄호 [ ]는 넣어도 되고 안 넣어도 되는 자리입니다.
- 점 셋 …은 여러 개를 이어 쓸 수 있다는 뜻입니다.
- 옵션은 대소문자를 가립니다 — -r과 -R이 다른 명령도 있습니다.
자주 묻는 것
Q. git rebase은 무엇을 하나요?
내 커밋을 다른 기준 위에 다시 얹습니다 — 해시가 새로 생기므로 남이 이미 받아 간 브랜치에는 rebase하지 않고 merge를 씁니다.
Q. 어떻게 치나요?
git rebase [-i] [--onto <base>] <upstream> — 대괄호는 생략할 수 있는 자리입니다.
Q. 옵션은 몇 개나 자주 쓰나요?
여기 정리한 것은 7개입니다. 전체 목록은 man git에 있습니다. 이 명령은 git 갈래입니다.
같이 보는 명령
man 페이지: man git-rebase