Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.43.0 11/20/23
- 2.42.0 → 2.42.1 no changes
- 2.41.0 06/01/23
- 2.36.1 → 2.40.1 no changes
- 2.36.0 04/18/22
选项
- --tags
-
不要使用分支名称,只用标签来命名提交内容
- --refs=<pattern>
-
Only use refs whose names match a given shell pattern. The pattern can be a branch name, a tag name, or a fully qualified ref name. If given multiple times, use refs whose names match any of the given shell patterns. Use
--no-refs
to clear any previous ref patterns given. - --exclude=<pattern>
-
不要使用其名称与给定的壳模式相匹配的任何引用。该模式可以是分支名称、标签名称或完全合格的引用名称之一。如果多次给定,当一个引用与任何给定的模式匹配时,它将被排除。当与 --refs 一起使用时,只有当一个引用至少与一个 --refs 模式相匹配,并且不与任何 --exclude 模式相匹配时,才会被用作匹配。使用
--no-exclude
来清除排除模式的列表。 - --all
-
列出所有引用所可达的所有提交
- --annotate-stdin
-
通过用 "$hex ($rev_name)" 替换所有 40 个字符的 SHA-1 六位数(比如 $hex)来转换标准输入。 当与 --name-only 一起使用时,用 "$rev_name" 替代,完全省略 $hex。这个选项在旧版本的 Git 中被称为
--stdin
。For example:
$ 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/" 也会从名称中省略,与
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] 文档