Git checkout master未撤销更改,如何安全回到master分支?
解决方案
首先明确:切换分支不会自动撤销未提交的工作区修改——这些修改属于当前工作目录,而非某个分支,只要文件在两个分支中无冲突,Git会保留它们并带到新分支。
根据你的需求,分两种安全处理方式:
方式一:直接丢弃所有未提交修改(确认不需要这些更改时用)
在当前的master分支下,执行以下命令清除所有未保存的工作区更改:
# Git 2.23及以上版本推荐使用 git restore . # 旧版本可使用该命令 git checkout -- .
注意:这个操作会永久删除所有未提交的本地修改,执行前务必确认这些更改没有保留价值。
方式二:暂存newfeature分支的修改(后续可能需要时用)
如果不想丢弃这些修改,先把它们暂存到newfeature分支相关的栈中:
- 切回newfeature分支:
git checkout newfeature - 暂存当前未提交的修改:
(如果之后想恢复这些修改,切回newfeature分支执行git stashgit stash pop即可) - 再次切回master分支:
git checkout master
此时master分支就是干净的状态了。
内容的提问来源于stack exchange,提问作者Lee Casey
相关产品推荐
相关产品推荐

