Git如何拉取其他repo最新变更同时保留本地已有修改
操作步骤
1. 首次操作先配置上游生产仓库
先查看当前已关联的远程仓库:git remote -v
如果输出中没有指向生产repo的upstream源,执行添加命令:git remote add upstream <生产repo的实际访问地址>
2. 拉取生产repo的最新提交
执行命令拉取上游生产仓库的所有最新提交到本地缓存,该操作不会修改你当前的工作区内容:git fetch upstream
3. 切换到你做了自定义修改的测试分支
比如你修改的是默认main分支,执行:git checkout main
如果是其他自定义开发分支,替换为对应的分支名即可。
4. 合并生产更新到本地测试分支
可根据你的使用场景二选一:
- 合并模式(推荐多人协作的测试分支使用,会保留完整提交历史)
执行命令将上游生产的最新内容合并到当前分支,自动保留你已有的修改:git merge upstream/main
若出现代码冲突,手动编辑冲突文件解决冲突后,执行git add <冲突文件路径>,再执行git commit即可完成合并。 - 变基模式(推荐个人独占的测试分支使用,提交历史更整洁无冗余合并记录)
执行命令将你本地的所有修改提交移到上游最新提交的后面:git rebase upstream/main
若出现代码冲突,手动解决后执行git add <冲突文件路径>,再执行git rebase --continue直到变基流程完成。
5. 推送到远程测试repo
本地同步完成后,执行推送命令更新你的远程测试repo:git push origin <你的测试分支名>
注意:如果使用了变基模式,推送时需要添加-f参数强制推送,仅在你确认该测试分支没有其他人同时提交时使用该参数
注意事项
- 操作前建议先将本地未提交的临时修改执行
git stash暂存,或直接提交到本地分支,避免操作过程中丢失改动。 - 若对操作结果不确定,可先从当前测试分支切出一个临时分支做同步测试,验证没问题后再合并回正式测试分支。
内容的提问来源于stack exchange,提问作者codemaster9090
相关产品推荐
相关产品推荐

