我对git还是很陌生,但是我一直在我设置的远程服务器上使用它,而且我很确定自己了解基本知识。

我只是设置了gitlab和将我的一些代码推送到一个新项目上。我所做的是:


将我的所有代码保存在目录中
git init
git commit -m“初始提交”
git push origin master

在哪里设置了origin:

git remote add origin git@1.2.3.4:myproject.git


现在当我执行git branch -a时,我看到:

* master
  remotes/origin/master


以前我玩耍的时候,总是看到:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master


我了解head是当前已签出分支的指针,因此它不应该存在于原点上吗?为什么不创建它?

#1 楼

不必为此远程HEAD担心。这行只是原始克隆工作方式的产物,代表远程HEAD的状态。

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

您的本地文件.git/refs/remotes/origin/HEAD现在可能包含字符串ref: refs/remotes/origin/master。如果需要,可以将其删除(请注意,我不建议您这样做),并且git branch -a将不再显示它。远程HEAD的状态永远不会重要。您只需要担心真正的远程分支的状态,而不必担心远程HEAD,因为它仅对于将远程状态作为其默认选定分支有意义。而且如果remote是裸仓库,那么即使在remote上也没有多大意义。不必决定默认使用哪个默认远程分支。

#2 楼

您可以通过命令q4​​312079q进行设置,该命令会自动将origin / HEAD设置为指向相应的远程分支。或使用git remote set-head origin -a指定要指向的远程分支。

另请参见:https://stackoverflow.com/a/8841024/1851492

#3 楼

我用这种方式解决了我的问题

先删除.git文件夹中的索引文件。
然后打开终端并键入git reset