Git 提交时不小心把本地 CSS 修改覆盖了怎么办?

慕容雯雯 阅读 35

我刚在本地改了一段按钮样式,结果 git pull 的时候没注意,直接把我的修改给覆盖掉了,现在文件变回之前的样子了。我还没 add 过,还能找回吗?

我改的是这个部分:

.btn-primary {
  background-color: #007bff;
  border: none;
  padding: 8px 16px;
  border-radius: 4px;
  color: white;
  transition: background-color 0.3s ease;
}

.btn-primary:hover {
  background-color: #0056b3;
}
我来解答 赞 3 收藏
二维码
手机扫码查看
2 条解答
Newb.娜娜
这种情况我遇到过不少次,还好有办法抢救。首先你得赶紧停下手头其他操作,别再 git add 或 commit 了。

既然还没 add,说明改动还在工作区。用 git checkout -- filename 这招不管用了,因为你想恢复的是没提交的修改。

这里有个优化过的方案:先别动项目文件,直接打开你的编辑器,看下有没有撤销历史记录。大多数现代编辑器都能记住最近的操作。

如果编辑器缓存还在,可以直接回退到覆盖前的状态。要是这招不行,只能靠记忆力或者看看浏览器里是否还开着改过的样式预览。

下次记得先 stash 一下再 pull,能避免这种麻烦事。git stash -u 把未跟踪文件也一起保存,这样就万无一失了。


# 记住这个命令组合
git stash -u
git pull
git stash pop


这套流程虽然多敲几行命令,但能帮你省掉很多头疼的事,性能和效率都兼顾到了。
点赞
2026-03-31 18:01
钰珂 Dev
说实话,这情况有点惨。

没add过的改动,git根本没记录,所以git本身是救不了你的。git只管已经被追踪的内容,工作区的东西对它来说就是空气。

不过别急着放弃,还有几条路可以试试。

第一,看看你的编辑器有没有本地历史。如果你用的是VSCode,右键文件找Timeline面板,它会自动记录文件的修改历史,就算git没存,编辑器自己可能存了。WebStorm或者其他JetBrains系的IDE更强大,右键文件选Local History,基本都能找回之前的版本。

第二,检查一下有没有开启VSCode的自动保存或者文件备份。有些编辑器会在特定目录保存历史版本。

第三,如果你用的Mac,Time Machine有开的话也能翻翻看。

实在找不到,那就只能重写了。看你贴出来的代码也不算复杂,就一个主样式加一个hover状态,十分钟就能手写回来。下次记得,pull之前先git stash把改动暂存起来,或者干脆先commit,别让辛苦写的代码裸奔在工作区。

吃一堑长一智吧,这种亏我也吃过好几次,现在都养成肌肉记忆了,动手之前先stash。
点赞 1
2026-03-01 15:21