Git 切换分支时提示有未提交的更改怎么办? 清梅的笔记 提问于 2026-03-21 17:11:22 阅读 3 工具 我正在开发一个新功能,刚改了几行代码还没 commit,想切回 main 分支看个东西,结果 Git 报错不让切,说本地有修改会覆盖。 我试过 git stash 但好像没生效,还是切不过去,现在卡在这儿了。这些改动又不想直接 commit,有啥稳妥的办法能先切换分支吗? 我来解答 赞 0 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 鑫玉 Lv1 遇到这种情况确实挺烦人的。首先,确保你的工作目录干净一点,检查一下哪些文件被修改了,可以运行 git status 看看。 如果你确定不想提交这些更改,也不想丢失它们,但又需要切换分支,可以试试 git stash push,有时候 git stash 默认可能只会暂存已跟踪的文件,而 git stash push 更明确一些。如果你还有新增的文件,可以加上 -u 参数来暂存所有更改,命令是 git stash push -u。 如果 stash 确实没生效,可能是之前有 stash 没有 pop 或 apply,你可以先用 git stash list 查看一下是否有未应用的 stash,有的话可以用 git stash pop 或 git stash apply 来恢复。 最后,切换分支应该没问题了,用 git checkout main 就可以了。 记得转义特殊字符,虽然在这个场景下不太相关,但养成好习惯总是好的。希望这些步骤能帮到你,解决这个问题。 回复 点赞 2026-03-21 17:12 加载更多 相关推荐 2 回答 86 浏览 Git Blame显示的提交ID和实际修改者不符怎么办? 在合并分支后用git blame查看某行代码时,显示的总是合并提交的ID,而不是真正修改代码的人。我尝试过加--show-root参数也没用,该怎么准确定位原始作者? 比如我修改过组件的prop验证逻... 丽萍 工具 2026-01-27 16:33:31 1 回答 9 浏览 git stash后切分支,再切回来代码没了怎么办? 我刚才在 dev 分支上改了一半代码,临时要用 main 分支跑个 demo,就用了 git stash 把改动存起来。结果切到 main 跑完,再切回 dev,发现之前 stash 的内容找不到了!... UX福萍 工具 2026-03-20 16:52:23 1 回答 22 浏览 Git提交时如何避免把本地调试的CSS样式误提交到主分支? 我们团队用的是 Git Flow 工作流,最近几次 pull request 里不小心把本地调试用的 CSS 提交上去了,比如下面这段: .debug-border { border: 2px sol... 上官树鹤 前端 2026-03-16 13:33:21 2 回答 76 浏览 Git合并分支后CSS样式被覆盖怎么办? 最近团队用Git Flow协作时,我合并了一个feature分支到develop,发现某个组件的CSS样式被意外覆盖了。比如原本在.header里设置了background: #333;,但合并后变成... 景岩 Dev 前端 2026-02-05 14:03:39 2 回答 96 浏览 Git rebase后提交历史被抹掉了,怎么恢复? 今天在合并分支时用了git rebase main,解决冲突后提交了,结果发现之前的提交历史全没了,只剩最后那次合并的记录。我明明记得要保留分支历史才用的rebase,现在该怎么把中间的几个提交找回来... FSD-闪闪 工具 2026-01-28 14:40:32 1 回答 25 浏览 GitHub提示我的CSS依赖有安全漏洞,但代码很简单怎么办? 我在项目里只用了一小段自定义CSS,结果GitHub Dependabot突然报了个高危漏洞,说和css-loader有关。可我根本没装这个包啊,是不是误报? 这是我的CSS代码: .btn-prim... 书生シ炳硕 安全 2026-03-18 17:31:22 2 回答 19 浏览 Git reflog 能帮我找回被 reset 掉的提交吗? 我昨天不小心在主分支上执行了 git reset --hard HEAD~2,结果把最近两次提交全删了。现在项目代码回退到了两天前的状态,但那两次提交里其实有很重要的功能改动。 听说 Git 的 re... 恩硕 Dev 工具 2026-03-11 09:30:21 2 回答 21 浏览 GitHub Actions部署时怎么指定分支? 我用 GitHub Actions 自动部署静态网站,但每次 push 到 main 分支都会触发部署,我想改成只在 deploy 分支推送时才部署。改了 workflow 文件里的 on: push... 宇文佼佼 工具 2026-03-04 13:23:24 2 回答 13 浏览 Git Bisect 怎么用?我试了但找不到引入 bug 的提交 我在用 Git Bisect 排查一个 UI 显示异常的问题,但跑完流程后它标出的“坏提交”根本没改过相关代码,感觉不对劲。我是不是哪里操作错了? 我怀疑是某个提交不小心删了 class 名,比如下面... 闲人超霞 工具 2026-03-02 16:55:21 1 回答 26 浏览 Git 提交时不小心把本地 CSS 修改覆盖了怎么办? 我刚在本地改了一段按钮样式,结果 git pull 的时候没注意,直接把我的修改给覆盖掉了,现在文件变回之前的样子了。我还没 add 过,还能找回吗? 我改的是这个部分: .btn-primary {... 慕容雯雯 前端 2026-03-01 15:13:18
git status看看。如果你确定不想提交这些更改,也不想丢失它们,但又需要切换分支,可以试试
git stash push,有时候git stash默认可能只会暂存已跟踪的文件,而git stash push更明确一些。如果你还有新增的文件,可以加上-u参数来暂存所有更改,命令是git stash push -u。如果 stash 确实没生效,可能是之前有 stash 没有 pop 或 apply,你可以先用
git stash list查看一下是否有未应用的 stash,有的话可以用git stash pop或git stash apply来恢复。最后,切换分支应该没问题了,用
git checkout main就可以了。记得转义特殊字符,虽然在这个场景下不太相关,但养成好习惯总是好的。希望这些步骤能帮到你,解决这个问题。