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

如何将master分支中当前未提交的工作转移至其他分支?

解决未提交改动从master转移到新分支的简单方法

嘿,这个场景我太熟了!完全不用先把改动提交到master,有个超简单的一步到位方法:

  • 直接创建并切换到新分支:在当前master分支(带着未提交改动)的状态下,运行下面任意一个命令:
    # 传统写法
    git checkout -b new-feature-branch
    # Git 2.23+ 推荐的新写法
    git switch -c new-feature-branch
    
    这两个命令都会立刻创建新分支并切换过去,而且你的所有未提交改动(工作区+暂存区的内容)会自动跟着转移到新分支,完全不需要额外操作!

为什么这个方法可行?

Git的未提交改动是存储在工作区和暂存区的,不属于任何特定分支。只要你切换的目标分支和当前分支的文件没有冲突,这些改动就会被保留下来,直接跟着你到新分支里。

关于git reset --soft的疑问

你提到的git reset --soft是在已经把改动提交到master之后才需要用到的场景:比如你不小心把这些临时改动提交到了master,那可以用git reset --soft HEAD~1把这次提交撤销,把改动放回暂存区,然后再创建新分支。但如果还没提交,完全没必要走这一步,直接创建新分支切换过去就好。

额外保险小技巧(可选)

如果你担心操作过程中改动丢失,可以先临时备份一下改动:

# 把未提交改动临时存起来
git stash
# 创建并切换到新分支
git switch -c new-feature-branch
# 把备份的改动恢复到新分支
git stash pop

不过这属于冗余操作,上面的一步切换方法已经足够安全,除非你遇到了分支切换冲突(这种情况很少见,因为你是从最新的master创建新分支的)。

最后验证一下:切换到新分支后运行git status,你会看到那些未提交的改动都还在,接下来就可以安心在新分支上开发、提交了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:46:41