如何将当前分支未提交的改动迁移到新Git分支并清除当前工作区改动
Git 操作方案
核心逻辑为将当前未提交的改动平移到新分支存档,再清空主分支的改动,全程不会丢失任何代码,操作无风险。
命令行操作步骤
- 第一步:基于当前工作分支(通常为
main或master)新建并切换到存档分支,本地未提交的改动会自动同步到新分支,无需手动迁移:
# 两个命令二选一即可,分支名可自定义,方便后续识别即可 git checkout -b 存档/未完成的XX功能开发 # 或Git新版本支持的命令 git switch -c 存档/未完成的XX功能开发
- 第二步:将改动提交到存档分支:
# 全量提交所有改动,如需提交指定文件将.替换为对应文件路径即可 git add . git commit -m "存档:202X年X月X日 未完成的XX功能,因紧急任务中断"
- 第三步:切回日常开发的主分支:
git checkout main # 或 git switch main
- 第四步:清空主分支的残留改动,恢复到干净的开发状态:
# 清空所有已被Git跟踪的文件的改动 git reset --hard HEAD # 可选:如果有未被Git跟踪的新建文件需要删除,执行以下命令 git clean -f
VS Code 可视化操作步骤
- 点击左侧活动栏的「源代码管理」图标(分叉树样式),确认显示的未提交改动都是需要存档的内容
- 点击VS Code左下角状态栏显示的当前分支名(如
main),在弹出的菜单中选择「创建新分支」,输入自定义的存档分支名后按回车,VS Code会自动切换到新分支,所有未提交改动会保留 - 回到源代码管理面板,在消息输入框填写提交说明,点击「提交」按钮,完成存档分支的提交
- 再次点击左下角的分支名,选择日常工作的主分支切回
- 按快捷键
Ctrl+Shift+P(Mac为Cmd+Shift+P)调出命令面板,搜索并选择「Git: 重置(硬重置)」,确认重置到HEAD即可清空主分支的改动;未被Git跟踪的新建文件可直接在资源管理器中手动删除
提示:作为项目唯一开发者,存档分支可永久保留在本地或推送到远程仓库,后续需要恢复开发时直接切回对应分支即可,不会影响主分支的正常迭代。
内容的提问来源于stack exchange,提问作者KostaShah
相关产品推荐
相关产品推荐

