如何将Git错误分支上的未提交工作迁移到正确分支
Git工作区改动跨分支迁移操作步骤
以下操作可以平滑将当前master分支的未提交改动、未追踪文件迁移到f-testing-docs分支:
前置检查
先执行git status确认所有待迁移改动均处于未暂存、未追踪状态,提前备份重要改动避免丢失。
方案1:无文件冲突场景(优先选择)
如果f-testing-docs分支没有和当前改动同名且内容冲突的文件,直接切换分支即可,所有工作区改动会自动跟随迁移:
- 切换到目标分支:
git switch f-testing-docs
旧版本Git可使用命令:git checkout f-testing-docs - 切换完成后执行
git status验证,所有未暂存改动、未追踪文件均会完整保留在当前工作区,后续按需求正常提交即可。
方案2:存在文件冲突场景
如果切换分支时Git提示文件冲突无法切换,使用暂存栈处理:
- 暂存当前所有改动(包含未追踪文件):
git stash push -u
其中-u参数用于同步暂存未被Git追踪的新增文件,不加该参数只会暂存之前已被Git跟踪过的文件改动 - 切换到目标分支:
git switch f-testing-docs - 恢复之前暂存的改动到当前工作区:
git stash pop - 按Git提示解决文件冲突后,即可正常提交改动。
特殊场景补充:master分支的拼写错误需要单独保留
如果之前在master分支修改的拼写错误不需要迁移到新分支,要留在master分支归档,可在执行上述迁移操作前先单独提交该改动:
- 暂存拼写错误对应的修改文件:
git add [拼写错误对应的文件路径] - 提交改动到master分支:
git commit -m "fix: 修正拼写错误"
剩余的未暂存改动、未追踪文件即为需要迁移的新开发内容,再按上述方案执行迁移即可。
内容的提问来源于stack exchange,提问作者Geoff_S
相关产品推荐
相关产品推荐

