git展示merge的详细信息,正常显示中文文件名
git展示merge的详细信息,正常显示中文文件名
问题
在执行pull
或者merge
操作时,刚刚执行完的时候,我们能看到较为详细的改动信息,比如下面这样子:
PS D:\GitHub\Algorithm> git pull origin main
From https://github.com/GoldenStain/Algorithm
* branch main -> FETCH_HEAD
Merge made by the 'ort' strategy.
README.md | 5 +++++
...e 55. \350\267\263\350\267\203\346\270\270\346\210\217.cpp" | 10 ++++++++++
2 files changed, 15 insertions(+)
create mode 100644 "leetcode 55. \350\267\263\350\267\203\346\270\270\346\210\217.cpp"
但是如果我们后续用git log
命令再次尝试查看,就只能看到简单的一行merge信息。
由此,引出我们的需求:
怎么在后续查看时,看到类似的详细改动?
解决方法
该方法来自deepseek生成的回复,已验证。
其中还包含了正确显示中文文件名的方法。
如何重新查看合并时的「文件变更摘要」?
方法 1:使用 git show
查看合并提交的详细信息
直接查看合并提交的完整信息,包括文件变动列表:
git show <merge-commit-hash>
这会显示:
- 提交元信息(作者、时间、提交说明)。
- 合并的文件变更摘要(新增/修改的文件列表,类似你执行
git pull
时看到的内容)。 - 具体的代码差异(可通过
--stat
仅显示摘要)。
操作示例:
-
找到合并提交的哈希值:
git log --oneline --graph
输出示例:
* 2a3b4c5 (HEAD -> main) Merge branch 'main' of https://github.com/GoldenStain/Algorithm |\ | * 6d7e8f9 Update README * | 1a2b3c4 Add leetcode 55
这里
2a3b4c5
是合并提交的哈希。 -
查看合并提交的详细信息:
git show 2a3b4c5 --stat
输出示例:
commit 2a3b4c5... Merge: 1a2b3c4 6d7e8f9 Author: Your Name <your@email.com> Date: ... Merge branch 'main' of https://github.com/GoldenStain/Algorithm README.md | 5 +++++ "leetcode 55. \350\267\263\350\267\203\346\270\270\346\210\217.cpp" | 10 ++++++++++ 2 files changed, 15 insertions(+)
方法 2:配置 git log
显示文件变更摘要
在 git log
中直接显示文件变动统计:
git log --stat -1 <merge-commit-hash>
--stat
: 显示文件变更统计。-1
: 仅显示最近 1 条提交。
方法 3:查看合并时的完整操作日志
Git 会记录所有操作的原始输出(如合并时的详细信息),可以通过 git reflog
找到合并操作的位置,然后查看原始输出:
# 1. 查看操作历史
git reflog
# 2. 找到合并操作的位置(例如 HEAD@{2})
git show HEAD@{2}
文件名中的八进制转义符问题
你看到的文件名 leetcode 55. \350\267\263\350\267\203\346\270\270\346\210\217.cpp
是 Git 对非 ASCII 字符(如中文)的八进制转义表示。要正确显示中文文件名,可以:
- 升级 Git 到最新版本(新版本已默认支持 Unicode)。
- 配置 Git 禁用转义:
git config --global core.quotepath off
之后执行 git show
或 git log
时会正常显示中文路径。
总结
场景 | 命令 |
---|---|
查看合并提交的文件摘要 | git show <merge-commit> --stat |
查看合并提交的完整差异 | git show <merge-commit> |
在日志中显示文件变动 | git log --stat -1 <merge-commit> |
修复中文文件名显示问题 | git config --global core.quotepath off |
本文作者:Gold_stein
本文链接:https://www.cnblogs.com/smartljy/p/18699697
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统