--rebase
的作用是将你在当前分支的本地提交(本地修改)重新应用到从远程仓库拉取的最新提交之后。这与传统的 git pull
(拉取后合并)不同,它通过将本地提交进行「重演」而不是合并,保持提交历史的整洁。
在 git pull --rebase
过程中,如果出现冲突,你需要手动解决这些冲突。--rebase
模式会暂停在冲突点,让你解决冲突并继续。
# 1. 开始 rebase 过程
git pull --rebase
# 如果出现冲突,Git 会提示你解决冲突
# 解决冲突后,标记冲突解决情况
git add .
# 继续 rebase 过程
git rebase --continue
放弃 rebase 过程
如果在处理冲突时遇到困难,你可以取消 rebase 过程,恢复到 rebase 开始前的状态:
git rebase --abort
完整
# 1. 确保你在正确的分支
git checkout master
# 2. 使用 rebase 拉取远程更改
git pull --rebase
# 3. 解决任何冲突
# Git 会提示你解决冲突,然后继续
git add <conflicted-files>
git rebase --continue
# 4. 完成 rebase 后,推送更改到远程仓库
git push
git pull --rebase
和 git stash
的比较
虽然 git pull --rebase
很方便,但它假设你的本地提交已经保存到了本地分支的历史中。如果你有未提交的更改(如工作目录中的文件),你需要使用 git stash
来临时保存这些更改
# 1. 暂存本地更改
git stash
# 2. 拉取远程更改并 rebase
git pull --rebase
# 3. 恢复本地更改
git stash pop
# 4. 解决冲突(如果有)
git add <conflicted-files>
git rebase --continue