设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
修补
调试
电子邮件
外部系统
服务器管理员
指南
管理
管道命令
- 2.43.1 → 2.44.0 无更改
- 2.43.0 11/20/23
- 2.42.0 → 2.42.1 无更改
- 2.41.0 06/01/23
- 2.36.1 → 2.40.1 无更改
- 2.36.0 04/18/22
选项
- --tags
-
不使用分支名称,仅使用标签来命名提交
- --refs=<pattern>
-
仅使用其名称与给定的 shell 模式匹配的引用。该模式可以是分支名称、标签名称或完全限定的引用名称。如果多次给出,则使用其名称与任何给定的 shell 模式匹配的引用。使用
--no-refs
来清除先前给出的任何引用模式。 - --exclude=<pattern>
-
不使用其名称与给定的 shell 模式匹配的任何引用。该模式可以是分支名称、标签名称或完全限定的引用名称。如果多次给出,当引用与任何给定的模式匹配时,它将被排除。当与 --refs 一起使用时,仅当引用与至少一个 --refs 模式匹配且不与任何 --exclude 模式匹配时,才会将其用作匹配项。使用
--no-exclude
来清除排除模式列表。 - --all
-
列出所有可从所有引用访问的提交
- --annotate-stdin
-
通过用 "$hex ($rev_name)" 替换所有 40 个字符的 SHA-1 十六进制数(例如 $hex)来转换 stdin。当与 --name-only 一起使用时,用 "$rev_name" 替换,完全省略 $hex。在较旧版本的 Git 中,此选项称为
--stdin
。例如
$ cat sample.txt An abbreviated revision 2ae0a9cb82 will not be substituted. The full name after substitution is 2ae0a9cb8298185a94e5998086f380a355dd8907, while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad $ git name-rev --annotate-stdin <sample.txt An abbreviated revision 2ae0a9cb82 will not be substituted. The full name after substitution is 2ae0a9cb8298185a94e5998086f380a355dd8907 (master), while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad $ git name-rev --name-only --annotate-stdin <sample.txt An abbreviated revision 2ae0a9cb82 will not be substituted. The full name after substitution is master, while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad
- --name-only
-
仅打印名称,而不是同时打印 SHA-1 和名称。如果与 --tags 一起给出,则名称中通常的标签前缀 "tags/" 也将被省略,更接近
git-describe
的输出。 - --no-undefined
-
当引用未定义时,使用错误代码 != 0 终止,而不是打印
undefined
。 - --always
-
显示唯一缩写的提交对象作为后备。
示例
给定一个提交,找出它相对于本地引用在什么位置。假设有人写信告诉你关于那个奇妙的提交 33db5f4d9027a10e477ccf054b2c1ab94f74c85a。当然,你查看了提交,但这只告诉你发生了什么,而不是上下文。
输入 git name-rev
% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a 33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940
现在你更明智了,因为你知道它在 v0.99 之前发生了 940 次修订。
你可以做的另一件好事是
% git log | git name-rev --annotate-stdin
GIT
git[1] 套件的一部分