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

如何将Git未提交变更移至新分支并清理master分支

解决Git未提交变更跨分支显示的问题

嘿,这问题我太熟了!咱们一步步来搞定它——核心原因是:未提交/未暂存的变更属于工作区,而不是某个分支,所以你创建新分支后切换回master,这些变更还会留在工作区里。要让变更只留在新分支,同时清理master,有两种靠谱的方式:

方法一:先把变更“寄存”到新分支(更安全,推荐)

这种方式能确保你的未完成工作不会丢失,适合还没确定要不要丢弃变更的情况:

  • 先切回你的新分支,把变更暂存并提交(哪怕是未完成的,用WIP标记就行):
    git switch your-new-branch-name  # 替换成你的新分支名
    git add .  # 暂存所有变更,也可以选择性添加单个文件
    git commit -m "WIP: 未完成的工作,后续继续修改"
    
  • 然后切回master分支,这时候你会发现master的工作区已经完全干净了:
    git switch master
    

方法二:直接清理master分支的工作区(适合确定不需要保留master里的变更)

如果你确定master里的这些未提交变更没用了,可以直接恢复master到当前提交的状态:

  • 先切回master分支:
    git switch master
    
  • 恢复所有已被Git追踪的文件到HEAD状态(丢弃未提交的修改):
    git restore .
    
  • 如果还有新添加的、未被Git追踪的文件(比如新建的文件),需要额外清理:
    git clean -nfd  # 先预览会被删除的文件,确认没问题再执行下面的命令
    git clean -fd   # 强制删除未被追踪的文件和目录
    

小提醒

  • git restore是Git 2.23+才有的命令,如果你用的旧版本,可以用git checkout -- .替代,但restore更直观,推荐升级Git版本。
  • 执行git clean前一定要用-n参数预览,避免误删重要文件!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:16:05