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

如何在不丢失当前分支未提交更改的情况下切换Git分支?

替代git stash的几种实用方案

1. 直接切换分支(无冲突场景首选)

Git本身支持在存在未提交更改的情况下直接切换分支,只要你当前修改的文件在目标分支中没有冲突的变更。直接执行命令:

git switch <目标分支名>
# 旧版本Git可使用 git checkout <目标分支名>

切换后,你的未提交更改会被自动带到新分支上。等你处理完其他分支的任务,切回原分支时,这些更改会原样恢复。如果Git提示文件冲突无法切换,再考虑其他方法。

2. 使用git worktree创建独立工作区

如果需要彻底隔离原分支的未更改状态,git worktree是最优解。它能在当前仓库外创建一个独立的工作目录,关联到目标分支,原工作区的未提交更改不会受到任何干扰:

  • 创建新工作区:
git worktree add ../<自定义工作区目录名> <目标分支名>
  • 进入新工作区处理任务:
cd ../<自定义工作区目录名>
# 在这里正常操作目标分支,提交、修改都不会影响原工作区的状态
  • 完成任务后删除该工作区:
git worktree remove ../<自定义工作区目录名>

这个方法完全规避了多分支stash混淆的问题,每个工作区的状态完全独立。

3. 暂存更改后切换(应急短时间场景)

如果你只是临时切换分支处理小事,也可以先把更改暂存起来(git add .),再直接切换分支。不过这个方法有风险:如果目标分支的对应文件有变更,切换后暂存的内容可能会和目标分支的内容混合,所以只适合短时间、无冲突的场景,谨慎使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 05:25:07