问:
当我执行 git diff COMMIT 时,我看到了该提交和 HEAD 之间的更改(据我所知),但我想查看该单个提交所做的更改。
我在 diff / log 上没有找到任何明显的选项可以给我那个输出。
答1:
huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。
要查看特定 COMMIT 哈希的差异,其中 COMMIT 是提交的哈希:
git diff COMMIT~ COMMIT 将向您展示该 COMMIT 的祖先与 COMMIT 之间的区别。有关命令的详细信息,请参阅 git diff 的手册页,以及有关 ~ 表示法及其朋友的 gitrevisions。
或者,git show COMMIT 会做一些非常相似的事情。 (提交的数据,包括其差异 - 但不包括合并提交。)请参阅 git show manpage。
(还有 git diff COMMIT 会告诉你那个 COMMIT 和 head 之间的区别。)
请注意,^ 需要在 Thomson 和 Bourne shell(那里 | 的同义词)和 rc 及其派生词(插入符号运算符)和启用扩展全局的 zsh 中引用(not globbing 运算符)
请注意,如果提交有多个父级(即合并提交),则 HEAD^ 表示第一个父级。
git diff COMMIT~ COMMIT 对我有用,请注意波浪号而不是插入符号。我在 Windows 10 上运行 git 版本 2.6.1.windows.1。
@tradetree:COMMIT 这个词应该被替换为一些提交的名称,例如 SHA 总和。
我觉得 git show 更适合这个问题,应该是首先提到的建议。
答2:
HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com
如“Shorthand for diff of git commit with its parent?”中所述,您还可以将 git diff 用于:
git diff COMMIT^!
或者
git diff-tree -p COMMIT
使用 git show,您需要(为了只关注 diff)执行以下操作:
git show --color --pretty=format:%b COMMIT
COMMIT 参数是 commit-ish:
提交对象或可以递归取消引用到提交对象的对象。以下都是commit-ish:一个提交对象,一个指向提交对象的标签对象,一个指向一个指向提交对象的标签对象的标签对象,等等。
请参阅 gitrevision “SPECIFYING REVISIONS” 以引用 commit-ish。 另请参阅“What does tree-ish mean in Git?”。
答3:
huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!
你也可以试试这个简单的方法:
git show
这似乎做了一些完全不同的事情
它只显示提交消息。不是适用于此提交的代码更改的差异。
这应该是答案。
@k0pernikus 它对我有用
有时,此命令会显示提交消息。
答4:
huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。
git show 显示在最近提交中所做的更改。它等价于 git show HEAD。
git show HEAD~1 将您带回一次提交。
答5:
huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。
我通常这样做:
git diff HEAD~1
显示有关上次提交的更改。如果您有更多提交,只需将数字 1 增加到您想要查看的提交 diff 数。
要显示上次提交的更改,只需使用 git show ;)
答6:
huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!
利用:
git show
这将向您展示该提交中的内容。您可以通过在两个提交 SHA-1 哈希之间放置一个空格来确定范围。
git show
如果您经常变基,这将非常有用,因为您的功能日志将全部排成一行。
如果您碰巧想查看最后 3 次提交,您可以使用 HEAD 语法
git show HEAD~3 HEAD
SHA-1 哈希是唯一的可能性(不是反问)吗?例如,HEAD~3 怎么样?
是的,你可以使用像 git show HEAD~3 HEAD 这样的东西,它比其他 git 命令有点笨拙,但它可以工作。
答7:
huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。
首先使用获取提交 ID,
git log #to list all
或者
git log -p -1 #last one commit id
复制提交 ID。
现在我们使用两种方法列出来自特定提交的更改,
方法一:
git diff commit_id^! #commit id something like this 1c6a6000asad012
方法二:
git show commit_id
For example: git show 1c6a600a
^! 是什么意思?
^!是 commit^..commit 的简写,这意味着将排除所有父母并检查该提交中的差异
我不是专家,但我有一个案例(涉及多个分支),其中 git log c^!与 git log c^..c 不完全相同。事实上它要好得多: git log c^..c 列出了太多条目,而 git log c^!做了正确的事,所以这就是我一直在寻找的东西
答8:
huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。
从 git-diff(1) 的手册页:
git diff [options] [] [--] […]
git diff [options] --cached [] [--] […]
git diff [options] [--] […]
git diff [options]
git diff [options] [--no-index] [--]
使用中间的第三个:
git diff [options]
同样来自同一手册页,位于底部的 Examples section 中:
$ git diff HEAD^ HEAD <3>
比较最后一次提交和最后一次提交之前的版本。
诚然,它的措辞有点令人困惑,它会不那么令人困惑,因为
将最近的提交与之前的提交进行比较。
您的改写将适用于 git diff HEAD HEAD^。
git diff HEAD^ HEAD 不显示任何更改。
@user3690202 这意味着没有任何更改要显示。真的是这样吗?
怎么可能没有任何显示变化?如果您想查看最后一次提交,除非它是一个全新的存储库,否则肯定会有一些更改要显示?
user3690202 可以使用 Git 进行“空提交”,该提交实际上不包含来自父级的任何更改,尽管有一个内置的保护措施可以检查并防止这种情况,尽管它可以用命令行选项覆盖。我怀疑您是否会故意创建一个空提交,因此另一种可能性是您以某种方式对(或其他有趣的空白内容)进行了预提交行结束转换,这会诱使 Git 认为实际上没有进行任何更改。你在哪个平台上运行 Git?
答9:
HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com
对我来说,这很好用
git show COMMIT --compact-summary
显示下一个信息
输出扩展标题信息的简明摘要,例如文件创建或删除(“new”或“gone”,如果是符号链接,则可选“+l”)和模式更改(“+x”或“-x”用于添加或删除diffstat 中的可执行位)。信息放在文件名部分和图形部分之间。暗示–stat。
赞成,因为这实际上是我正在寻找的。我偶然发现了这个问题,因为“查看提交中的更改”可能意味着一些不同的事情。我想查看更改的文件,而不是实际更改的文件。继续阅读以获得非常好的答案,以查看文件中的更改。
很好的答案。就像这个命令的输出格式一样。
这里说:致命:无法识别的参数:--compact-summary
@AG_HIHI 听起来您的 git 版本没有该选项,您可以在此处查看:git-scm.com/docs/git-show 如果选项参数 --compact-summary 可用,则在文档中搜索您的特定 git 版本,如果没有,则升级到一个较新的。
答10:
与HuntsBot一起,探索全球自由职业机会–huntsbot.com
以下似乎可以完成这项工作;我用它来显示合并带来的内容。
git whatchanged -m -n 1 -p
这也适用于 git log 吗? (因为 stackoverflow.com/a/18585297/6309)
git log --name-only - 用于列出更改的文件。或 git log --name-status --find-renames - 获取具有更改类型的更改文件列表(添加/修改/重命名等)
答11:
huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求
另一种可能:
git log -p COMMIT -1
原文链接:https://www.huntsbot.com/qa/QQwE/how-can-i-see-the-changes-in-a-git-commit?lang=zh_CN&from=csdn
HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com
文章提供了多种使用git命令查看特定提交更改的方法,包括gitdiff,gitshow,gitdiff-tree,并解释了相关选项如~符号和^表示法。还提到了gitlog和gitwhatchanged的用途。

3万+

被折叠的 条评论
为什么被折叠?



