You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Git提交中获取重命名文件的修改内容

查看Git提交中重命名文件的真实差异

针对你遇到的场景——在pypa/pipenv仓库的提交d0423ac8a0bdf3454f165eb9871f7b9327f390cb中,git diff --stat能识别到linux.py重命名为_proc.py,但直接执行git show d0423ac8a0bdf3454f165eb9871f7b9327f390cb -- pipenv/vendor/shellingham/posix/_proc.py只能看到新文件内容,无法获取真实修改差异——可以用以下几种方法解决:

方法1:用git diff对比提交与其父提交

直接对比目标提交和它的父提交,指定文件路径(原文件或新文件路径都可以,Git会自动识别重命名关联):

# 对比父提交和目标提交,指定新文件路径
git diff d0423ac~1 d0423ac -- pipenv/vendor/shellingham/posix/_proc.py

或者同时指定原文件和新文件路径,效果一致:

git diff d0423ac~1 d0423ac -- pipenv/vendor/shellingham/posix/linux.py pipenv/vendor/shellingham/posix/_proc.py

这条命令会清晰展示文件重命名后的内容修改差异,同时标注rename from和rename to信息。

方法2:直接查看完整提交差异

如果不需要单独过滤文件,直接执行git show查看整个提交的差异,Git会自动包含重命名文件的修改细节:

git show d0423ac8a0bdf3454f165eb9871f7b9327f390cb

输出中会明确显示文件重命名操作,以及该文件的具体内容变更。

方法3:直接对比两个版本的文件快照

如果需要精准对比原文件在父提交的版本,和新文件在目标提交的版本,可以用以下命令:

git diff d0423ac~1:pipenv/vendor/shellingham/posix/linux.py d0423ac:pipenv/vendor/shellingham/posix/_proc.py

原因说明

git show <commit> -- <new-file-path>默认只展示该文件在目标提交中的快照内容,而重命名的差异需要对比父提交中的原文件和当前提交中的新文件。上述方法都是通过明确触发版本对比,让Git识别重命名关系并展示真实修改。

内容的提问来源于stack exchange,提问作者Moe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:45:36