You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并中断stash操作后分散在stash@{0}与待提交区的文件?

解决Git暂存区与Stash内容合并问题

方案一:将暂存区内容合并到现有Stash

这种方法无需额外备份文件,直接通过Git命令完成合并:

  • 先把暂存区的内容提交为一个临时提交(提交信息随便写,后续会丢弃)
    git commit -m "temp-commit"
  • 应用原来的Stash记录(stash@{0})到当前分支,自动合并修改(如果无冲突)
    git stash apply
  • 将所有修改(包括Stash和原暂存区的内容)添加到暂存区,合并到刚才的临时提交中
    git add .
    git commit --amend --no-edit
  • 把这个包含全部修改的临时提交转换为新的Stash,同时撤销临时提交
    git reset HEAD~1
    git stash push -m "merged-stash"
  • 删除原来的旧Stash记录
    git stash drop stash@{1}

方案二:临时目录备份法

如果觉得命令行操作复杂,用备份文件的方式更直观:

  • 创建一个临时目录(建议放在项目目录外),把暂存区的所有文件完整复制过去(保留目录结构)
    git diff --name-only --cached | xargs cp --parents -t /path/to/your/temp-folder
  • 清空当前暂存区
    git reset
  • 删除原来的Stash记录(此时暂存区已空,不会被拒绝)
    git stash drop
  • 从临时目录把文件复制回项目原位置
    cp -r /path/to/your/temp-folder/* ./
  • 现在所有修改都在工作区,重新创建一个包含全部内容的Stash
    git stash push -m "merged-stash"

注意:如果合并过程中出现冲突,需要手动解决冲突后再继续后续步骤。Git Extensions用户可以直接在工具内打开Git命令行执行上述命令。

内容的提问来源于stack exchange,提问作者Dominique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 15:02:52