项目场景提示这里简述项目相关背景我本地修改了20个文件新增了10个文件。一共30个修改文件由于项目周期导致我提交git只需要提交指定的5个文件这里提交的就会被追踪所以不需要判断是否为新增文件如图所示编辑器显示更改问题描述提示这里描述项目中遇到的问题假设上述30个修改点我提交了8个文件到分支已经推送到远端了。这8个文件就是一期修改模块但是出现了一个地方就是我的同事修改了其中某个文件的代码并且推送了这是假设场景此时远端有一个新的提交记录但是我本地有一大堆更改文件1、我要拉取远端代码合并到本地2、我本地代码不想提交commit但是我暂存也不能拉取下来豆包给的答案操作阶段「暂存的更改」「更改」列表能否 pull操作前你现在Subscribing.vue21 个文件红框❌ 不能有本地修改执行 git stash --keep-index 后Subscribing.vue保留空21 个被藏起来✅ 可以执行 git stash pop 后Subscribing.vue保留21 个文件完全恢复❌ 回到初始状态已暂存的 → 还在未暂存的 → 藏起来工作区变干净 ✅暂存更改保留已暂存 git stash--keep-index 恢复刚才藏起来的文件 git stash pop控制台显示红色分析会出现一个情况命令行处理的对象不一样执行后还存在一些文件你现在看到的 “还在更改里的文件”一定是这两种新增的文件你本地新建的从来没提交过的从来没有被 git add 过的文件它们叫 untracked filesgit stash 默认不会动它们所以你执行git stash --keep-index后它们依然留在更改列表导致你还是不能 pull你只需要把命令改成这个多一个 -ugitstash --keep-index-u这个-u就是 把 “未跟踪的新文件” 也一起藏起来git stash --keep-index→ 只藏已修改过的旧文件→ 不藏新增文件git stash --keep-index -u→ 藏所有修改所有新增文件→ 工作区 100% 变干净→ 就能 pull 了总结# 一步把所有东西全部藏起来包含暂存的、未暂存的、新增文件gitstash push-u-mtemp# 二步拉代码现在 100% 成功gitpull# 三步恢复所有gitstash pop