vault backup: 2026-11-07 16:33:44

This commit is contained in:
cheney
2026-11-07 16:33:55 +08:00
commit 7015312702
1208 changed files with 132432 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
要查看 Git 仓库中**指定文件的所有修改记录**(包括谁、何时、改了什么),最直接的方法就是使用 `git log` 配合文件名。
### 📜 基本命令:显示所有影响该文件的提交
```bash
git log -- <文件路径>
```
示例:
```bash
git log -- src/main.py
```
这样会按时间倒序列出所有修改过 `src/main.py` 的提交。
### 🔍 查看每次修改的具体内容(diff)
加上 `-p` 或 `--patch` 就能看到每次提交中该文件具体的增删行:
```bash
git log -p -- src/main.py
```
### 🚶 跟踪文件重命名/移动
如果文件曾被重命名或移动过,默认 `git log` 不会自动跟踪。加上 `--follow` 即可:
```bash
git log --follow -p -- src/main.py
```
> 注意:`--follow` 在某些 Git 版本中不能与 `--reverse` 等参数同时使用,但基本场景够用。
### 📅 更紧凑的显示(一行摘要 + 统计)
```bash
git log --oneline --stat -- src/main.py
```
- `--oneline`:每个提交一行
- `--stat`:显示文件修改的统计(增加/删除行数)
### 🎯 只查看某个时间范围或作者
```bash
# 最近 5 次修改
git log -5 -- src/main.py
# 某个作者
git log --author="张三" -- src/main.py
# 某个日期之后
git log --since="2024-01-01" -- src/main.py
```
### 💡 补充:逐行查看文件每行的最后修改
如果你想知道文件每一行最后一次是谁改的,用 `git blame`:
```bash
git blame <文件路径>
```
这会输出每行的内容、提交哈希、作者、时间。如果你想忽略空白或移动过的行,可以用 `git blame -w -C`。
---
### 总结
| 需求 | 命令 |
|------|------|
| 只看提交列表 | `git log -- <file>` |
| 看每次改了什么 | `git log -p -- <file>` |
| 跟踪重命名 | `git log --follow -p -- <file>` |
| 统计改了多少行 | `git log --stat -- <file>` |
| 查看每行最后修改人 | `git blame <file>` |
这些命令足够覆盖日常查看文件历史的需求。