当前位置:  开发笔记 > 开发工具 > 正文

运行"git branch -r"时为什么会显示"origin/HEAD"?

如何解决《运行"gitbranch-r"时为什么会显示"origin/HEAD"?》经验,为你挑选了4个好方法。

当你运行git branch -r为什么火焰会列出origin/HEAD?例如,GitHub上有一个远程仓库,比如说有两个分支:master和awesome-feature.如果我git clone抓住它然后进入我的新目录并列出分支,我看到:

$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature

或者它的任何顺序(阿尔法?我​​正在伪造这个例子以保持无辜的回购秘密的身份).那么HEAD业务是什么?它是什么,最后一个人push有他们HEAD在尖时,他们推?这不会是他们push编辑的一切吗?HEAD四处走动......为什么我会关心别人HEAD在另一台机器上指出的东西?

我只是处理远程跟踪等问题,所以这是一个挥之不去的混乱.谢谢!

编辑:我的印象是专用的远程回购(比如GitHub,没有人会在这个代码上工作,但只有拉或推等)没有也不应该有HEAD,因为基本上,没有工作副本.不是吗?



1> cdunn2001..:

@robinst是对的.

在git中,您可以选择默认签出的分支(即克隆时).默认情况下,origin/HEAD将指向该.

在GitHub上,您可以在GitHub仓库的管理员设置中更改此设置.您也可以从命令行通过

git remote set-head origin trunk

或通过完全删除它

git remote set-head origin -d

例子.查看"切换分支"下拉列表.trunk检查,origin/HEAD如下trunk.



2> robinst..:

The reason a bare repository can have a HEAD, is that because it determines which branch is initially checked out after a clone of the repository.

Normally, HEAD points to master, and that is the branch that is checked out when people clone the repository. Setting it to another branch (by editing HEAD in the bare repository) results in that branch being checked out on clone.



3> boblu..:

我的印象是专用的远程回购(比如GitHub,没有人会在这个代码上工作,但只有拉或推等)没有也不应该有一个HEAD,因为基本上没有工作复制.不是吗?

我和你说的有完全相同的印象.

我甚至无法删除从github克隆的源/ HEAD远程跟踪分支

git branch -d -r origin/HEAD

这没有效果.

有人可以告诉我如何删除该origin/HEAD远程跟踪分支?

更新

虽然我没有找到为什么在从github克隆时创建了一个origin/HEAD,但我找到了一种方法来删除它.

新版本的git提供

git remote set-head  -d

删除远程跟踪分支的无用HEAD指针.

我们还可以通过使用将哑巴默认名称"origin"更改为我们想要的任何内容

git remote rename origin 

希望这可以提供帮助.:)


@Joost:它是`git remote set-head origin -d`

4> Paul..:

你是正确的,当他们"裸露"时,即当他们没有工作目录时,推动专用远程回购工作会更好.Git的体系结构设计用于通过补丁或pull(fetch)进行更新,这在分布式VCS中是有意义的.正如文档所说的那样,推向目前已检出的分支可能会导致"意外结果".

HEAD是有效存储库要求的一部分.Git Repository Layout部分说:

HEAD

A symref (see glossary) to the refs/heads/ namespace describing the currently active  
branch. It does not mean much if the repository is not associated with any working tree  
(i.e. a bare repository), but a valid git repository must have the HEAD file; some  
porcelains may use it to guess the designated "default" branch of the repository  
(usually master). It is legal if the named branch name does not (yet) exist.

因此,您将看到HEAD作为分支列表的一部分,即使"它并不意味着......"

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有