查看 Git 提交中发生了什么变化

Git 提供了几种方式可以帮你快速查看提交中哪些文件被改变。

Git 提供了几种方式可以帮你快速查看提交中哪些文件被改变。

查看 Git 提交中发生了什么变化

如果你每天使用 Git,应该会提交不少改动。如果你每天和其他人在一个项目中使用 Git,假设 每个人 每天的提交都是安全的,你会意识到 Git 日志会变得多么混乱,似乎永恒地滚动着变化,却没有任何迹象表明修改了什么。

那么,你该怎样查看指定提交中文件发生哪些变化?这比你想的容易。

查看提交中文件发生的变化

要想知道指定提交中哪些文件发生变化,可以使用 git log --raw 命令。这是发现一个提交影响了哪些文件的最快速、最方便的方法。git log 命令一般都没有被充分利用,主要是因为它有太多的格式化选项,许多用户在面对很多选择以及在一些情况下不明所以的文档时,会望而却步。

然而,Git 的日志机制非常灵活,--raw 选项提供了当前分支中的提交日志,以及更改的文件列表。

以下是标准的 git log 输出:

“`
$ git log
commit fbbbe083aed75b24f2c77b1825ecab10def0953c (HEAD -> dev, origin/dev)
Author: tux tux@example.com
Date: Sun Nov 5 21:40:37 2020 +1300

exit immediately from failed download

commit 094f9948cd995acfc331a6965032ea0d38e01f03 (origin/master, master)
Author: Tux tux@example.com
Date: Fri Aug 5 02:05:19 2020 +1200

export makeopts from etc/example.conf

commit 76b7b46dc53ec13316abb49cc7b37914215acd47
Author: Tux tux@example.com
Date: Sun Jul 31 21:45:24 2020 +1200

fix typo in help message

“`

即使作者在提交消息中指定了哪些文件发生变化,日志也相当简洁。

以下是 git log --raw 输出:

“`
$ git log –raw
commit fbbbe083aed75b24f2c77b1825ecab10def0953c (HEAD -> dev, origin/dev)
Author: tux tux@example.com
Date: Sun Nov 5 21:40:37 2020 +1300

exit immediately from failed download

:100755 100755 cbcf1f3 4cac92f M src/example.lua

commit 094f9948cd995acfc331a6965032ea0d38e01f03 (origin/master, master)
Author: Tux tux@example.com
Date: Fri Aug 5 02:05:19 2020 +1200

export makeopts from etc/example.conf

:100755 100755 4c815c0 cbcf1f3 M src/example.lua
:100755 100755 71653e1 8f5d5a6 M src/example.spec
:100644 100644 9d21a6f e33caba R100 etc/example.conf etc/example.conf-default

commit 76b7b46dc53ec13316abb49cc7b37914215acd47
Author: Tux tux@example.com
Date: Sun Jul 31 21:45:24 2020 +1200

fix typo in help message

:100755 100755 e253aaf 4c815c0 M src/example.lua

“`

这会准确告诉你哪个文件被添加到提交中,哪些文件发生改变(A 是添加,M 是修改,R 是重命名,D 是删除)。

Git whatchanged

git whatchanged 命令是一个遗留命令,它的前身是日志功能。文档说用户不应该用该命令替代 git log --raw,并且暗示它实质上已经被废弃了。不过,我还是觉得它是一个很有用的捷径,可以得到同样的输出结果(尽管合并提交的内容不包括在内),如果它被删除的话,我打算为它创建一个别名。如果你只想查看已更改的文件,不想在日志中看到合并提交,可以尝试 git whatchanged 作为简单的助记符。

查看变化

你不仅可以看到哪些文件发生更改,还可以使用 git log 显示文件中发生了哪些变化。你的 Git 日志可以生成一个内联差异,用 --patch 选项可以逐行显示每个文件的所有更改:

“`
commit 62a2daf8411eccbec0af69e4736a0fcf0a469ab1 (HEAD -> master)
Author: Tux Tux@example.com
Date: Wed Mar 10 06:46:58 2021 +1300

commit

diff –git a/hello.txt b/hello.txt
index 65a56c3..36a0a7d 100644

via: https://opensource.com/article/21/4/git-whatchanged

作者:Seth Kenlon 选题:lujun9972 译者:DCOLIVERSUN 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

主题测试文章,只做测试使用。发布者:eason,转转请注明出处:https://aicodev.cn/2021/04/11/%e6%9f%a5%e7%9c%8b-git-%e6%8f%90%e4%ba%a4%e4%b8%ad%e5%8f%91%e7%94%9f%e4%ba%86%e4%bb%80%e4%b9%88%e5%8f%98%e5%8c%96/

(0)
eason的头像eason
上一篇 2021年4月10日
下一篇 2021年4月11日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信