如何查看某个文件修改的历史记录
今天测试提了个 bug,说有一个接口报了 404
我一看是一个图片访问不到了,这个图片还不是别的图片,是网页的 icon,然后我就看了一下自己项目里的 public 文件夹下,icon.png 没了,下意识地我就想到这个文件为什么没了,是因为要从后端获取吗?一般情况下,是放在前端的。
我让测试同学放了一张 icon.png 放在部署项目的根目录跟 index.html 同级,然后刷新页面就正常了。
让后端看了一下没有相关的接口和文件服务来配置这个 icon,现在唯一要做的就是把看一下这个 icon 的 git 记录。看一下这个 icon 是在解决什么问题的情况下才被删除的。不能盲目地添加 icon,提交代码。
可以使用 git log 命令来查看文件的修改历史记录。主要有三种命令:
只查看提交记录,
命令:
git log -- images/example.png输出:
commit 000000000000000000000000000000000
Author: name <email.com.cn>
Date: Fri Apr 26 00:00:00 2025 +0800
fix #BUG11111111111111 修改问题首先,确保你在包含.git 仓库的目录下。 使用 git log 命令结合--和文件路径来查看该文件的历史记录。即使文件已被删除,你也可以通过其之前的路径来查询。例如,如果图片路径为 images/example.png,你可以运行: shell 深色版本 git log -- images/example.png 这将列出所有涉及到该文件的提交历史,包括它被删除的那一笔。然而,这种方法仅在你知道文件的确切路径时有效。 更简便的方法是使用-p 选项与 git log 一起,这会显示每次提交的补丁(即具体更改的内容),帮助你明确看到文件何时被删除: shell 深色版本 git log -p -- images/example.png 在输出中寻找删除操作(通常以 deleted file mode 表示)的提交。 如果你不确定文件的确切路径或者想要搜索整个历史记录中的删除事件,可以使用以下命令: shell 深色版本 git log --diff-filter=D --summary | grep 'example.png' 其中,--diff-filter=D 只显示含有删除操作的提交,而--summary 提供了关于哪些文件被修改的信息。替换 example.png 为你实际要查找的图片名称。 若想直接获取删除文件的那个 commit 哈希值,可以将上述方法结合起来使用 grep 进行过滤,或者利用更精确的 pickaxe 搜索(git log -S)针对特定内容的变化,尽管对于二进制文件如图片来说不常用。