Git提交和引用头
存在git提交的引用头,这些引用头本身是独立的提交。例如,有两个提交,例如Git提交和引用头,git,github,git-commit,Git,Github,Git Commit,存在git提交的引用头,这些引用头本身是独立的提交。例如,有两个提交,例如925ca878bc3c6c264ba5335b39be762a39e462ec和035d1c4e0d4be18bf8f4610072d1c4e0d4 当我执行一个git show ref--heads--tags时,我得到 925ca878bc3c6c264ba5335b39be762a39e462ec refs/heads/035d1c4e0d4be18bf8f46150072d1c4e0d4 1afff830dc0
925ca878bc3c6c264ba5335b39be762a39e462ec
和035d1c4e0d4be18bf8f4610072d1c4e0d4
当我执行一个git show ref--heads--tags时,我得到
925ca878bc3c6c264ba5335b39be762a39e462ec refs/heads/035d1c4e0d4be18bf8f46150072d1c4e0d4
1afff830dc0611c924d3bdaf490b0378dd4f2444 refs/heads/4d04fde758564386fb5d6922a1d4f01970e4e050
925ca878bc3c6c264ba5335b39be762a39e462ec refs/heads/af76057dea6c0f395fa2eada0e45dd8c01a4aea6
所以现在在925ca878bc3c6c264ba5335b39be762a39e462ec
上签出后,如果我尝试签出035D1C4E0D4BE18BF8F4610072D1C4E0D4
,我会得到
warning: refname '035d1c4e0d4be18bf8f46150072d1c4e0d4' is ambiguous.
在每次提交之前,我已经在使用两个命令rm-f.git/index.lock
和git branch-D$(git branch--merged | grep-v\*| xargs)
(理想情况下,它们应该处理分支问题)
有解决办法吗?我之前没有遇到过这个问题,所以我不确定到底发生了什么。您的分支具有长的十六进制名称,这很奇怪。如果运行git分支
,您应该会看到类似的内容
035d1c4e0d4be18bf8f46150072d1c4e0d4
4d04fde758564386fb5d6922a1d4f01970e4e050
af76057dea6c0f395fa2eada0e45dd8c01a4aea6
可能还有一个ID为035D1C4E0D4BE18BF8F4610072D1C4E0D4
的提交
如果这是故意的,那就不是一个好主意,因为你刚刚发现了原因。如果必须这样做,请使用类似branch/035d1c4e0d4be18bf8f4610072d1c4e0d4
的前缀消除分支名称的歧义
如果这是一个错误,那么您将以某种方式使用提交ID作为名称创建分支。您可能有向后的git分支的语法。应该是这样的
git branch <name> <branch from>
有可能你在做什么
git branch 035d1c4e0d4be18bf8f46150072d1c4e0d4 035d1c4e0d4be18bf8f46150072d1c4e0d4
甚至只是
git branch <the current commit>
所以你的分支都有长而大的数字名称,就好像它们是散列值一样035D1C4E0D4BE18BF8F4610072D1C4E0D4是分支的名称??为什么此sha1的大小不正确?
git branch <the current commit>
git branch $(git rev-parse HEAD)