Git revert 之后为什么我的 CSS 修改没恢复?

Mr.熙苒 阅读 458

我用 git revert HEAD 撤销了最近一次提交,但发现之前改的 CSS 样式还是生效的,没回到原来的样子,这是为啥?

我改的是一个按钮的样式,原本是蓝色,后来改成红色并提交了。现在 revert 之后,代码看起来回退了,但页面上按钮还是红的。我试过清除缓存、重启开发服务器,都没用。

.btn {
  background-color: red;
  border: none;
  padding: 8px 16px;
  color: white;
  border-radius: 4px;
}
我来解答 赞 12 收藏
二维码
手机扫码查看
2 条解答
设计师诺曦
看起来你遇到的是浏览器缓存的问题,虽然代码已经回退了,但浏览器还在使用旧的样式文件。这种情况在开发中挺常见的。

首先确认一下你的 CSS 文件引用方式,如果用了文件名加时间戳或者哈希值(比如 styles.css?v=1234),记得更新这个参数来强制浏览器重新加载。

另外,可以试试在开发者工具里禁用缓存。具体来说,在 Chrome 的 Network 面板勾选 Disable cache 选项,这样刷新页面时就不会再使用缓存了。

最后,记得检查下是否有全局样式覆盖了你的 .btn 样式。官方文档里说,样式的优先级可能会导致这种现象。你可以试试给 .btn 加上 !important 来验证:

.btn {
background-color: red !important;
border: none;
padding: 8px 16px;
color: white;
border-radius: 4px;
}


这虽然是个临时办法,但能帮你确定是不是优先级的问题。要是还不行,可能就得排查下构建工具配置了,有时候构建结果没正确更新也会出现类似情况。
点赞
2026-03-26 19:03
上官雨晨
这种情况很可能是构建工具在搞鬼。git revert确实把代码回退了,但你的CSS可能被webpack之类的工具缓存了。试试这几个步骤:

1. 先确认代码确实回退了:
git show HEAD

看看按钮样式是不是变回蓝色了

2. 如果代码没问题,强制清理构建缓存:
rm -rf node_modules/.cache


3. 再重新构建:
npm run build


要是还不行,把浏览器开发者工具打开,检查Network面板看看加载的CSS文件是不是最新的。有时候浏览器也会缓存CSS,可以试试无痕模式。

妈的现代前端开发就这德行,改个CSS都得跟缓存斗智斗勇...
点赞 2
2026-03-08 21:05