HEAD,FETCH
有很多有用的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记录你正在合并到你的分支中的提交。 CHERRY_PICK_HEAD记录您在运行git cherry-pick时樱桃采摘的提交。 从git源代码中,您还可以了解有关BISECT_HEAD , REVERT_HEAD , REJECT_NON_FF_HEAD和几乎肯定不需要的其他几个其他信息。
该参考还解释了后缀( ^N , ~N , @{...} ),范围( .. vs ... )等。
HEAD :您正在查看的当前裁判。 在大多数情况下,它可能是refs/heads/master
FETCH_HEAD :在上次git fetch期间更新的分支/远程头的SHA
ORIG_HEAD :在进行合并时,这是你合并到的分支的SHA。
MERGE_HEAD :进行合并时,这是您正在合并的分支的SHA。
CHERRY_PICK_HEAD :做樱桃选择时,这是你挑选樱桃的提交的SHA。
这些参考文献的完整列表可以通过克隆git来源找到:
git clone https://github.com/git/git.git
并在.c文件中_HEAD"字符串,它们遍布整个地方,但仍然可以轻松找到。
PS
git help revisions不显示所有可能的命名参考文献的列表。
这就是Git修订版的官方Linux Kernel Git文档所说的:
HEAD命名您在工作树中基于更改的提交。
FETCH_HEAD记录你从最后的git fetch调用中从远程存储库中获取的分支。
ORIG_HEAD是通过命令创建的,这些命令以激烈的方式移动HEAD在操作之前记录HEAD的位置,以便在运行之前轻松地将分支顶端改回到状态。
当你运行git merge时, MERGE_HEAD记录你正在合并到你的分支中的提交。
CHERRY_PICK_HEAD记录您在运行git cherry-pick时樱桃采摘的提交。
另外,对于@{upstream} :
<refname>@{upstream} ,例如master@{upstream} , @{u}
ref(简写<refname>@{u} )的后缀@{upstream}指的是ref设置为在其之上构建的分支。 缺少的参考默认为当前分支。
上一篇: HEAD, FETCH
下一篇: How to check real git diff before merging from remote branch?
