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>

这会显示:

  1. 提交元信息(作者、时间、提交说明)。
  2. 合并的文件变更摘要(新增/修改的文件列表,类似你执行 git pull 时看到的内容)。
  3. 具体的代码差异(可通过 --stat 仅显示摘要)。

操作示例:

  1. 找到合并提交的哈希值:

    git log --oneline --graph
    

    输出示例:

    *   2a3b4c5 (HEAD -> main) Merge branch 'main' of https://github.com/GoldenStain/Algorithm
    |\  
    | * 6d7e8f9 Update README
    * | 1a2b3c4 Add leetcode 55
    

    这里 2a3b4c5 是合并提交的哈希。

  2. 查看合并提交的详细信息:

    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 字符(如中文)的八进制转义表示。要正确显示中文文件名,可以:

  1. 升级 Git 到最新版本(新版本已默认支持 Unicode)。
  2. 配置 Git 禁用转义:
    git config --global core.quotepath off
    

之后执行 git showgit 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 中国大陆许可协议进行许可。

posted @   Gold_stein  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 逃离地面 RAD & 三浦透子
逃离地面 - RAD & 三浦透子
00:00 / 00:00
An audio error has occurred.

作词 : 野田洋次郎

作曲 : 野田洋次郎

空飛ぶ羽根と引き換えに 繋ぎ合う手を選んだ僕ら

それでも空に魅せられて 夢を重ねるのは罪か

夏は秋の背中を見て その顔を思い浮かべる

憧れなのか、恋なのか 叶わぬと知っていながら

重力が眠りにつく 1000年に一度の今日

太陽の死角に立ち 僕らこの星を出よう

彼が眼を覚ました時 連れ戻せない場所へ

「せーの」で大地を蹴って ここではない星へ

行こう

もう少しで運命の向こう もう少しで文明の向こう

もう少しで運命の向こう もう少しで

夢に僕らで帆を張って 来たるべき日のために夜を超え

いざ期待だけ満タンで あとはどうにかなるさと 肩を組んだ

怖くないわけない でも止まんない

ピンチの先回りしたって 僕らじゃしょうがない

僕らの恋が言う 声が言う

「行け」と言う