Git如何保留分支中被master删除的文件并重新推送至master
操作指引
以下为可直接执行的操作流程,可根据你的实际场景选择对应步骤:
场景1:你尚未合并master变更到自己的开发分支
- 先切换到你的开发分支,确认所有本地开发进度已提交:
git checkout <你的开发分支名称> git status # 如有未提交的变更,执行以下命令保存 git add . git commit -m "chore: 保存开发中未完成内容" - 拉取远程master的最新变更(不合并):
git fetch origin master - 将master最新变更合并到你的开发分支,合并过程中保留你开发的文件:
git merge origin/master
合并时如果出现文件删除冲突,执行以下命令保留你的文件版本:git checkout --ours <被删除的文件完整路径> - 所有冲突处理完毕后,提交合并结果:
git add . git commit -m "merge: 合并master最新变更,保留本地开发文件" - 测试当前分支功能正常后,合并到master并推送:
git checkout master git merge <你的开发分支名称> git push origin master
场景2:你已拉取master变更到本地,文件已被删除且未提交
- 直接从你的开发分支恢复所有被删除的文件即可:
单文件恢复:git checkout <你的开发分支名称> -- <被删除的文件路径>
批量恢复所有被master删除的文件:git diff --name-only --diff-filter=D origin/master | xargs git checkout <你的开发分支名称> -- - 确认文件恢复、功能正常后,提交修改再执行
git push origin master即可。
注意:操作前建议先对本地工作区做全量备份,避免误操作导致代码丢失。
内容的提问来源于stack exchange,提问作者Rija Saleem
相关产品推荐
相关产品推荐

