当你运行git branch -r为什么火焰会列出origin/HEAD?例如,GitHub上有一个远程仓库,比如说有两个分支:master和awesome-feature.如果我git clone抓住它然后进入我的新目录并列出分支,我看到:
$ git branch -r
origin/HEAD
origin/master
origin/awesome-feature
Run Code Online (Sandbox Code Playgroud)
或者它的任何顺序(阿尔法?我正在伪造这个例子以保持无辜的回购秘密的身份).那么HEAD业务是什么?它是什么,最后一个人push有他们HEAD在尖时,他们推?这不会是他们push编辑的一切吗?HEAD四处走动......为什么我会关心别人HEAD在另一台机器上指出的东西?
我只是处理远程跟踪等问题,所以这是一个挥之不去的混乱.谢谢!
编辑:我的印象是专用的远程回购(比如GitHub,没有人会在这个代码上工作,但只有拉或推等)没有也不应该有HEAD,因为基本上,没有工作副本.不是吗?
如何将Git遥控器的HEAD引用设置为指向除"master"之外的其他内容?
我的项目有一个不使用"主"分支的策略(所有分支都有有意义的名称).此外,规范主存储库只能通过ssh://访问,没有shell访问权限(如GitHub或Unfuddle).
我的问题是远程存储库仍然有一个HEAD引用refs/heads/master,但我需要它指向一个不同的分支.这导致两个问题:
克隆回购时,有这个,
警告:远程HEAD是指不存在的ref,无法结帐.
这令人困惑和不方便.
基于Web的代码浏览器依赖于HEAD作为浏览树的基础.我需要HEAD指向一个有效的分支,然后.
我不明白输出中的第二行git branch -l -a:remotes/origin/HEAD -> origin/master.
git branch -l -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
这是另一种手术的遗留物吗?我应该把它清理干净吗?那我该怎么办?
通常我在cli上使用git,但是在我尝试的本地存储库中TortoiseGit为朋友找到一个简单的git工作流程.
我们正在使用Gitlab 8.10.1与许多组和项目.许多项目恰好是其他项目的分支.我们的问题是,每当有人打开项目的合并请求时,默认目标分支不是项目的默认分支,而是来自一个非常特定的其他项目.有办法以某种方式覆盖此设置吗?为了说清楚,我知道如何设置项目的默认分支并且这些设置看起来是正确的,但gitlab似乎在创建合并请求时不会使用它们.这个问题非常烦人,当人们不注意并以完全不同的"主人"作为目标提出合并请求时,导致了奇怪的情况.
我有一个本地存储库,我想镜像到远程'websrv'.这曾经工作正常,直到我删除了一个本地分支.现在当我这样做
git push --mirror websrv
Run Code Online (Sandbox Code Playgroud)
我明白了
remote: error: By default, deleting the current branch is denied, because the next
remote: error: 'git clone' won't result in any file checked out, causing confusion.
remote: error:
remote: error: You can set 'receive.denyDeleteCurrent' configuration variable to
remote: error: 'warn' or 'ignore' in the remote repository to allow deleting the
remote: error: current branch, with or without a warning message.
remote: error:
remote: error: To squelch this message, you can set it to 'refuse'. …Run Code Online (Sandbox Code Playgroud) 运行git log给我这样的输出:
commit 69b6309f09365c09a2fe10f09aee801d1fae29ee (HEAD -> master, edeviserBranch)
Author: eDeviser <eDeviser@xyz.com>
Date: Mon Sep 2 09:53:07 2019 +0200
added foo
commit 59a08270fb730db259a8d5819bb585a613024d97 (origin/master, origin/HEAD)
Author: eDeviser <eDeviser@xyz.com>
Date: Mon Sep 2 09:49:50 2019 +0200
More Text
Run Code Online (Sandbox Code Playgroud)
我不明白括号内内容的含义。括号内的文字是什么意思?这是提交所基于的分支吗?HEAD -> master如果是,和origin/master之间有什么区别origin/HEAD?
如何解释git日志中的括号?
我注意到有2个HEAD:
当我使用时git show-ref HEAD,它只给我这个:
ce0762c073b407d794f54f0b5d2a50375fdcb609 refs/remotes/origin/HEAD
Run Code Online (Sandbox Code Playgroud)
当我使用git rev-parse HEAD它时,它给了我.git\HEAD的值:
a758e523fe40e799194878bac567b7f4b8eec2b9
Run Code Online (Sandbox Code Playgroud)
为什么Git使用2个不同的命令来显示HEAD?任何有力的理由?
我对git很新,但我一直在我设置的远程服务器上玩它,我很确定我理解基础知识.
我刚刚设置了gitlab并将我的一些代码推送到了一个新项目上.我做的是:
原产地设立时:
git remote add origin git@1.2.3.4:myproject.git
Run Code Online (Sandbox Code Playgroud)
现在,当我做git branch -a时,我看到:
* master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
而在我以前玩的时候,我总是看到:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
我知道头是当前检出的分支的指针,所以它不应该存在于原点上吗?它为什么不创造?
有git branch -av命令的输出.现在我在dev分公司.
***dev** 3f126e0 Comment...
master 7a47db8 Another comment...
remotes/origin/HEAD -> origin/master
remotes/origin/dev 3f126e0 Comment...
remotes/origin/master 7a47db8 Another comment...
Run Code Online (Sandbox Code Playgroud)
来自Scott Checkon的Pro Git一书.
How does Git know what branch you’re currently on? It keeps a special pointer called HEAD.
为什么在我上场时HEAD指向?origin/masterdev
git ×9
branch ×2
gitlab ×2
command-line ×1
git-branch ×1
git-push ×1
git-remote ×1
github ×1
merge ×1
pointers ×1
settings ×1