如何在SourceTree中将未提交变更移至新分支?
用SourceTree挽救你的修改:转移到独立分支的操作指南
别慌!这种情况太常见了,用SourceTree完全能轻松搞定,分两种最常见的场景给你一步步讲:
场景1:你还没把修改提交到本地仓库
如果你的修改还停留在「未暂存文件」或「已暂存文件」区域(还没点击过「提交」按钮),操作超简单:
- 打开SourceTree,确认左侧「工作副本」面板里能看到你的修改
- 点击顶部菜单栏的**「分支」→「从当前创建分支」**,或者直接在左侧分支列表里右键当前分支,选择「创建分支」
- 给新分支起个清晰的名字(比如
feature/user-profile-edit),记得勾选「切换到新分支」选项,然后点击「创建分支」 - 搞定!你的所有未提交修改会自动跟随到新分支里,接下来正常提交即可,原分支不会留下这些修改的痕迹
场景2:你已经把修改提交到当前本地分支了
如果已经点了提交,修改已经出现在当前分支的提交历史里,也不用怕:
- 先把提交转移到新分支
- 确保当前分支是你提交了修改的那个(比如
main),在提交历史里找到你最近的那个修改提交 - 右键这个提交,选择**「创建分支」**,给新分支命名,勾选「切换到新分支」后点击创建
- 确保当前分支是你提交了修改的那个(比如
- 把原分支回退到修改前的状态
- 切换回原分支(比如
main),在提交历史里找到你做修改之前的那个提交(就是没有你的修改的最后一个正常提交) - 右键这个提交,选择**「重置当前分支到这次提交」**,在弹出的选项里选「硬重置」(放心,你的修改已经在新分支里了,硬重置只会把原分支恢复到之前的状态)
- 切换回原分支(比如
- 检查一下:新分支里保留着你的所有修改,原分支回到了修改前的状态,完美!
小提醒
操作前可以先给当前分支做个备份:右键当前分支,选择「分支另存为」,起个备份名字(比如main-backup-temp),以防万一操作失误,随时可以恢复。
内容的提问来源于stack exchange,提问作者HeyHeyJC




