Git stash 标准用法

发布时间:2026/8/15 12:12:28
Git stash 标准用法 目录一、基础概念1.本地仓库2.工作区3.核心规则二、冲突场景与前置条件冲突产生完整前提三、git pull 两种执行结果1.修改文件无重叠远程未改动你编辑的文件2.修改文件重叠双方改动同一文件四、stash 冲突处理完整流程五、stash 使用边界六、两种场景区分场景 Astash 标准有效场景对应冲突流程图场景 B用 stash 存储已提交文件完全无效七、核心总结一、基础概念1.本地仓库git clone 远程地址 后项目内 .git 文件夹就是本地仓库克隆完成自动同步远程全部历史。2.工作区项目目录里可直接编辑的文件仅修改这里不会自动存入仓库。3.核心规则修改文件仅停留在工作区执行 git commit 才会把改动存入本地仓库快照git push 仅能推送已 commit 的记录。二、冲突场景与前置条件克隆基础命令git clone 远程仓库地址 cd 项目文件夹名克隆后本地、远程代码版本完全一致。冲突产生完整前提克隆后直接修改本地文件改动未提交你修改文件期间其他开发者推送更新到远程他人更新的文件和你本地修改的是同一个文件内容出现分歧。三、git pull 两种执行结果1.修改文件无重叠远程未改动你编辑的文件直接拉取无报错无需 stashgit pull origin master2.修改文件重叠双方改动同一文件Git 触发保护机制pull 直接报错防止本地修改被覆盖必须使用 stash四、stash 冲突处理完整流程bash # 1. 临时存放本地未提交修改工作区恢复干净 git stash # 2. 拉取远程最新代码 git pull origin master # 3. 恢复本地修改同一文件自动生成冲突标记 git stash pop # 4. 手动删除 HEAD、、 冲突标识保留正确代码 # 5. 所有修复文件加入暂存区 git add -A # 6. 批量提交修复内容无需填写文件名 git commit -m 修复拉取远程产生的代码冲突 # 7. 推送至远程仓库 git push origin mastercommit 语法说明已执行 git add -A批量存入暂存区直接 git commit -m 备注 即可全量提交可以省略{文件名}仅单独提交单个文件时才追加文件名。五、stash 使用边界仅支持寄存未提交的工作区改动可用克隆后改文件未执行提交无效改动已 commit工作区无变更执行 stash 提示「没有要保存的本地修改」唯一用途解决未提交文件阻断 pull 的冲突场景不能存放已提交的仓库历史版本。六、两种场景区分场景 Astash 标准有效场景对应冲突流程图前置本地无仓库→克隆本地改文件未提交远程修改同一文件现象git pull 报错终止流程git stash → git pull → git stash pop → 手动解决冲突 → git add -A → git commit -m → git push场景 B用 stash 存储已提交文件完全无效前置克隆→修改并完成 commitpush本地远程版本同步需整套替换新文件、禁止 pull现象工作区无改动stash 无内容可存替代方案新建独立分支 / 新建子目录存放新文件七、核心总结1.clone 即生成本地仓库手动改文件不会自动存档commit 是存入仓库的必要操作本地、远程改动同一文件会阻断 pull依靠 stash 暂存改动拉取代码后合并解决冲突再提交推送2.stash 只管理未提交的文件改动已提交版本冲突使用 merge/rebase与 stash 无关。