克隆Git仓库后进行开发,如何同步上游新提交且不覆盖本地修改?
Git同步上游仓库且保留本地自定义修改的操作步骤
前置准备(仅首次操作需要)
- 先检查是否已关联项目A的上游官方仓库,执行命令:
git remote -v - 如果输出中没有
upstream开头的条目指向项目A官方仓库,执行添加命令:git remote add upstream <替换为项目A的上游仓库地址>
具体操作步骤
- 拉取上游仓库的所有最新提交到本地
git fetch upstream
注意:后续命令中的
main需要替换为你实际使用的上游分支名,部分仓库默认主分支为master
- 临时存储你本地未提交的所有修改,避免意外丢失
git stash push -m "临时保存本地自定义修改" - 切换到你本地正在开发的目标分支(替换为你自己的分支名,示例为main)
git checkout main - 按你的实际情况选择以下任意一种方案执行:
- 方案1:你明确知道自己修改的所有源码文件路径
该方案会先将本地所有文件同步为上游版本,再恢复你自己的修改,完全符合需求:git reset --hard upstream/main git stash pop - 方案2:你记不清所有自己修改的文件路径
该方案会自动合并上游提交,所有冲突场景优先使用上游内容,你无冲突的本地修改会完整保留:git merge -X theirs upstream/main
- 方案1:你明确知道自己修改的所有源码文件路径
- 操作完成后可执行
git status查看文件状态,确认自己修改的源码文件完整保留,其余文件已同步上游最新版本即可。
内容的提问来源于stack exchange,提问作者ringhiosi
相关产品推荐
相关产品推荐

