Git推送源磁头在ubuntu 18.04上不工作
所以我是一个Windows10用户,我与很多分支机构合作。每次我需要在分支中进行推送时,我都会使用git推送原点头 两天前,我决定尝试一下ubuntu,我很喜欢使用它。唯一的问题是git-push-origin头不再工作了,每次我想推到一个分支时,我都必须使用git-push-origin和该分支名称Git推送源磁头在ubuntu 18.04上不工作,git,ubuntu,ubuntu-18.04,Git,Ubuntu,Ubuntu 18.04,所以我是一个Windows10用户,我与很多分支机构合作。每次我需要在分支中进行推送时,我都会使用git推送原点头 两天前,我决定尝试一下ubuntu,我很喜欢使用它。唯一的问题是git-push-origin头不再工作了,每次我想推到一个分支时,我都必须使用git-push-origin和该分支名称 这有什么原因吗?这还不是世界末日,但我真的很怀念使用head而不是键入分支名称的做法,总是用大写字母书写head。Git特别对待这个特殊的名称。它不专门处理小写的头 在某些机器上使用小写有时有效。
这有什么原因吗?这还不是世界末日,但我真的很怀念使用head而不是键入分支名称的做法,总是用大写字母书写
head
。Git特别对待这个特殊的名称。它不专门处理小写的头
在某些机器上使用小写有时有效。特别是,它通常在Windows和MacOS上工作。。。有时候。但是如果您使用git worktree add并在添加的工作树中工作,它也会停止在Windows和MacOS上工作
如果你不喜欢把Shift键放下来那么久,考虑使用<代码> @ /Cord>拼写这个神奇的名字。< /P> 为什么
head
(小写)有时有效,但并不总是有效
Git当前将头信息(当前分支的名称)存储在名为.Git/HEAD
的文件中,但在添加的工作树中除外,它将(每个添加的工作树)头信息存储在.Git
子文件夹中的文件中
当您使用所有大写字母编写HEAD
时,Git知道在适当的文件中查找HEAD
信息,无论是.Git/HEAD
还是.Git/worktrees/../HEAD
或其他任何文件。所以它直接指向正确的信息
但是,当您以小写形式编写head
时,Git会尝试将其用作标记名(refs/tags/head
),或分支名(refs/heads/head
),或远程跟踪名,如refs/remotes/origin/head
)。这个测试有点区分大小写,因为Git在两个地方存储分支、标记和远程跟踪名称:
- 它们可能位于名为
的纯文本文件中,和/或.git/packed refs
- 它们可以存储在文件系统中的普通文件中,位于
下,例如.git/refs/
将保存与名为。git/refs/tags/head
的标记相关联的哈希IDhead
.git/packed refs
中的查找直接由git本身完成,并且区分大小写。.git/refs/
中的查找由操作系统完成。操作系统的查找可能不区分大小写,具体取决于使用的操作系统和文件系统
当然,您可能没有名为head
的标记或分支。您的遥控器可能有一个名为HEAD
的符号引用,但在Git找到这些符号引用之前,Git还尝试查找.Git
中的普通纯文本文件,以查看是否有任何符号引用被命名为HEAD
。此测试再次由操作系统完成
如果您的操作系统和文件系统组合不区分大小写,那么打开并读取名为
head
的文件的请求就会打开并读取明显完全不相关的文件,那么您是用小写写head
还是用大写写head
?我是用小写写的,这就是问题所在。torek的评论修复了它,谢谢!