使用git switch -c后,如何将修改移至新分支并恢复master分支?
解决方法:将未提交修改迁移到新分支并恢复master分支
首先要明确:用git switch -c <new-branch>或git checkout -b <new-branch>创建新分支时,Git会把当前master分支的**未提交修改(工作区/暂存区)**带到新分支里,但切回master后,这些修改不会自动消失——因为Git默认会保留工作区的未提交修改(只要没有分支切换冲突)。不过不用担心,新分支里的修改已经安全保存,你可以放心清除master上的修改。
具体步骤:
确认新分支已创建成功,切换回master分支:
git switch master根据你的修改状态选择对应操作:
- 如果修改仅在工作区(没执行过
git add):
这个命令会将master工作区的所有文件恢复到当前HEAD(修改前)的状态。git restore . - 如果修改已经执行了
git add(暂存区有内容):
先清空暂存区,再恢复工作区:git reset HEAD . git restore . - 一步到位(直接重置暂存区+工作区):
这个命令会强制将master分支的暂存区和工作区恢复到最近一次提交的状态,所有未提交修改都会被丢弃,但新分支里的修改不受影响,因为创建新分支时这些修改已经被复制过去了。git reset --hard HEAD
- 如果修改仅在工作区(没执行过
验证新分支的修改:
切换回新分支确认修改还在,之后可以提交修改永久保存:git switch <new-branch> git add . git commit -m "迁移自master的修改"
内容的提问来源于stack exchange,提问作者user3146945
相关产品推荐
相关产品推荐

