Git 查看提交历史(git log)是最常用但也是最“花样多”的命令。
下面从最简单到最强大,给你列出 2025 年所有人都在用的 10 种姿势,直接复制粘贴就行。
1. 基础命令(每天都在用)
| 命令 | 效果说明 | 推荐指数 |
|---|---|---|
| git log | 完整历史,按时间倒序 | ★★★★ |
| git log –oneline | 每条提交只占一行(最常用!) | ★★★★★ |
| git log –oneline –graph | 带分支合并图形(强烈推荐) | ★★★★★ |
| git log –oneline –graph –decorate | 再显示分支名和 tag | ★★★★★ |
| git log –oneline –graph –all | 显示所有分支的历史(神级) | ★★★★★ |
示例(你现在直接敲这个就很爽):
git log --oneline --graph --all --decorate
2. 限制显示条数
| 命令 | 说明 |
|---|---|
| git log -10 | 只看最近 10 条 |
| git log –since=”2025-01-01″ | 从某个日期开始 |
| git log –until=”yesterday” | 到某个日期之前 |
| git log –author=”张三” | 只看某人提交 |
| git log –grep=”登录” | 提交信息包含“登录”的 |
3. 只看某个文件/文件夹的历史(超实用)
git log --oneline src/components/Login.vue # 只看这个文件
git log --oneline --follow README.md # 即使改过名字也能追踪
git log --oneline package.json # 看依赖变更历史
git log --oneline -- app/ # 看整个 app 目录的历史
4. 查看“谁在什么时候改了这行代码”(代码考古神器)
git blame src/App.vue # 每一行是谁改的、哪个 commit
git blame -L 15,30 main.py # 只看 15~30 行
git blame --since="2 weeks ago" index.html
5. 图形化查看历史(比命令还好用)
| 工具 | 命令/方式 | 评价 |
|---|---|---|
| 终端神器 | git log –graph –all –decorate –oneline | 够用一辈子 |
| tig | 安装后直接敲 tig | 终端里的 Sourcetree |
| GitKraken | 免费版足够 | 最漂亮的图形化工具 |
| VS Code 内置 | 左下角分支图标 → View Git Graph | 完全够用 |
| GitLens (VS Code 插件) | 安装后每一行都能看到提交者 | 装机必备 |
6. 查找被删除的代码或历史内容
# 查找曾经出现过但现在被删掉的代码
git log -S "const token = " --oneline # 查找添加/删除过这行代码的提交
git log -G "正则表达式" --oneline # 用正则查找
# 例子:某人删了一段关键代码,怎么找回来?
git log -S "importantFunction()" --oneline
# 找到 commit 后用 git show xxxxxxxx 看具体改动
7. 对比两个版本/分支的提交差异
# 看 dev 比 main 多出来的提交
git log main..dev --oneline
# 看 main 比 dev 多出来的提交
git log dev..main --oneline
# 看两个分支各自独有的提交
git log --left-right --oneline main...dev
8. 一行命令美化输出(放别名里一劳永逸)
把下面这行加到 ~/.bashrc 或 ~/.zshrc:
alias gl="git log --oneline --graph --all --decorate --color=always | head -30"
alias gg="git log --graph --all --oneline --decorate"
以后直接敲 gl 或 gg 就美得飞起!
9. 推荐的 5 个终极别名(强烈建议加上)
git config --global alias.hist "log --oneline --graph --all --decorate"
git config --global alias.last "log -10 --oneline"
git config --global alias.who "blame -w -C -C" # 忽略空格变更,追踪复制粘贴
git config --global alias.find "log -S" # 快速查找代码变更
git config --global alias.graph "log --graph --all --decorate --oneline --color=always"
以后直接敲:
git hist
git graph
git find "用户登录逻辑"
总结:你现在只需要记住这 3 条就够用了
- 日常查看:
git log --oneline --graph --all - 看具体改了啥:
git show commit-id - 代码考古:
git blame 文件名
掌握上面内容,你查看 Git 历史的能力已经超过 99% 的开发者了!
需要我给你一份彩色打印版「Git 查看历史速查卡」(PDF,带所有命令和示例)吗?随时说一声,我立刻发你!