没有遥控器/原点/ HEAD与gitlab

Cam*_*all 2 git gitlab

我对git很新,但我一直在我设置的远程服务器上玩它,我很确定我理解基础知识.

我刚刚设置了gitlab并将我的一些代码推送到了一个新项目上.我做的是:

  1. 获取目录中的所有代码
  2. git init
  3. git add.
  4. git commit -m"初始提交"
  5. git push origin master

原产地设立时:

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)

我知道头是当前检出的分支的指针,所以它不应该存在于原点上吗?它为什么不创造?

mvp*_*mvp 7

不用担心这个遥控器HEAD.这一行只是原始克隆工作方式的神器,代表遥控器的状态HEAD.

它可以被视为服务器首选的默认分支(即使在远程裸存储库中) - git clone如果-b branch未使用选项,默认情况下将由客户端检出.

您的本地文件现在.git/refs/remotes/origin/HEAD可能包含字符串ref: refs/remotes/origin/master.如果你愿意,你可以删除它(不是我建议你这样做,请注意),并且git branch -a不再显示它.

除了使用remote HEAD作为第一个克隆的默认分支之外,对于你来说,远程状态HEAD永远不重要.您应该只担心真正的远程分支的状态,而不是远程分支,HEAD因为它只对远程状态作为其默认选定分支有意义.如果远程是裸存储库,即使在远程也没有多大意义.

为什么你没有看到你这么做的时候远程端的原因git remote add ...,git fetch,git pull是因为在这种情况下的git没有做出决定哪个默认的远程分支默认皮卡.