如何同步克隆仓库与原远程仓库?提PR前同步及git pull是否为rebase疑问
Git协作与PR准备实操指南
一、确认你的仓库与Bob的原仓库是否同步
- 先确保已添加原仓库为远程源(如果还没加):
git remote add upstream <Bob的仓库Git地址> - 拉取原仓库的最新远程分支信息:
git fetch upstream - 对比本地分支与原仓库对应分支的差异:
- 直接查看代码差异:
无输出则完全同步,有输出则存在差异。git diff 你的本地分支名 upstream/目标分支名 - 查看原仓库比你多的提交记录:
有输出说明原仓库有你未同步的提交。git log --oneline 你的本地分支名..upstream/目标分支名
- 直接查看代码差异:
二、提交PR前同步原仓库最新版本
推荐用rebase保持提交记录整洁,步骤如下:
- 切换到你的工作分支:
git checkout 你的工作分支名 - 基于原仓库最新代码做rebase:
git rebase upstream/目标分支名- 如果遇到冲突,手动解决文件中的冲突标记,然后执行:
重复直到rebase完成。git add 冲突文件名 git rebase --continue
- 如果遇到冲突,手动解决文件中的冲突标记,然后执行:
- 将同步后的分支推送到你的fork仓库:
git push origin 你的工作分支名- 如果rebase后本地分支历史和远程fork的分支历史不一致,需要用安全的强制推送:
git push origin 你的工作分支名 --force-with-lease
git merge upstream/目标分支名替代rebase步骤,但会多一条合并提交记录) - 如果rebase后本地分支历史和远程fork的分支历史不一致,需要用安全的强制推送:
三、关于git pull的本质
- 默认情况下,
git pull等价于git fetch+git merge,不属于rebase操作。 - 如果想让
git pull默认使用rebase模式,可以全局配置:git config --global pull.rebase true - 也可以单次执行rebase模式的pull:
git pull --rebase
内容的提问来源于stack exchange,提问作者pylos
相关产品推荐
相关产品推荐

