有很多有用的git参考资料(这个确切名称是什么?),例如HEAD
,ORIG_HEAD
,FETCH_HEAD
,MERGE_HEAD
,@{upstream}等。
这方面有没有参考资料?一个包含解释的完整列表?
有很多有用的git参考资料(这个确切名称是什么?),例如HEAD
,ORIG_HEAD
,FETCH_HEAD
,MERGE_HEAD
,@{upstream}等。
这方面有没有参考资料?一个包含解释的完整列表?
git help revisions
调出http://git-scm.com/docs/gitrevisions,该页面描述了引用提交的最常见方式:
HEAD
指向工作树中您基于其进行更改的提交。FETCH_HEAD
记录使用上次git fetch获取的远程存储库中的分支。ORIG_HEAD
是由在显著方式下移动您的HEAD
的命令创建的,以记录这些操作之前HEAD
的位置,以便您可以轻松地将分支的末端更改回运行它们之前的状态。MERGE_HEAD
记录您在运行git merge时正在合并到您的分支中的提交。CHERRY_PICK_HEAD
在运行git cherry-pick时记录您正在挑选的提交。除此之外,从git源码中,您还可以了解到BISECT_HEAD
、REVERT_HEAD
、REJECT_NON_FF_HEAD
等其他几乎不需要使用的内容。
该参考还解释了后缀(^N
、~N
、@{...}
)、范围(..
与...
)等内容。
BISECT_HEAD
等变量,但你不应该假设它们一直存在。我期望在长期运行中支持 git help revisions
中列出的所有内容。 - Mikko RantalainenHEAD
: 当前所在的引用。在大多数情况下,它可能是 refs/heads/master
。
FETCH_HEAD
: 上一次 git fetch
更新的分支或远程头部的 SHA。
ORIG_HEAD
: 在进行合并操作时,这是您正在合并到的分支的 SHA。
MERGE_HEAD
: 在进行合并操作时,这是您从中合并的分支的 SHA。
CHERRY_PICK_HEAD
: 在进行 Cherry-pick 操作时,这是您正在 Cherry-pick 的提交的 SHA。
可以通过克隆 Git 源代码并在 .c 文件中使用 grep 命令来查找“_HEAD”字符串,以获取这些引用的完整列表:
git clone https://github.com/git/git.git
它们分散在各个位置,但仍然很容易找到。
P.S.
git help revisions
不显示所有可能的命名引用列表。
此外,对于
HEAD
表示当前工作目录中更改所基于的提交。
FETCH_HEAD
记录了您最后一次使用git fetch从远程存储库获取的分支。
ORIG_HEAD
由将您的HEAD
在很大程度上移动的命令创建,以记录操作前HEAD
的位置,以便您可以轻松地将分支的末端更改回运行它们之前的状态。
MERGE_HEAD
记录了您在运行git merge时要合并到您的分支中的提交。
CHERRY_PICK_HEAD
记录了您在运行git cherry-pick时要挑选的提交。
@{upstream}
:
<refname>@{upstream}
,例如master@{upstream}
,@{u}
将后缀
@{upstream}
添加到引用(短格式为<refname>@{u}
)是指该引用所设置的分支要建立在其之上。如果引用不存在,则默认为当前分支。
HEAD
的东西。关于完整列表,我认为唯一存在的是手册:http://git-scm.com/documentation。虽然没有可用特殊指针(如HEAD
)的完整列表,但手册确实涵盖了可用指针的完整列表,尽管它们有点难找。git help revisions
查询文档。 - Mikko Rantalainen