ORIG_HEAD,FETCH_HEAD,MERGE_HEAD等

tak*_*hin 48 git

有很多有用的Git引用(究竟是什么确切的名字?),例如HEAD,ORIG_HEAD,FETCH_HEAD,MERGE_HEAD,@ {}上游等

有什么参考吗?一个包含解释的完整列表?

dah*_*byk 38

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,@{...}),范围(..VS ...),等等.

  • 即使“BISECT_HEAD”在源代码中定义,您也不应该假设它们存在。我希望长期支持“git help revisions”中列出的所有内容。 (2认同)

Ser*_* K. 21

HEAD:你正在看的当前裁判.在大多数情况下,它可能是refs/heads/master

FETCH_HEAD:在最后一次更新的分支/远程磁头的SHA git fetch

ORIG_HEAD:进行合并时,这是您要合并的分支的SHA.

MERGE_HEAD:进行合并时,这是您要合并的分支的SHA.

CHERRY_PICK_HEAD:当做一个樱桃选择时,这是你正在挑选的提交的SHA.

可以通过克隆git源找到这些引用的完整列表:

git clone https://github.com/git/git.git

_HEAD".c文件中点击字符串.它们散布在各处,但仍然很容易找到.

PS

git help revisions 不显示所有可能的命名引用列表.


小智 5

这就是Git版本官方Linux Kernel Git文档所说的:

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}ref 的后缀(简短形式<refname>@{u})是指ref被设置为在其上构建的分支.缺少的ref默认为当前分支.