我最近注意到我们的 git 服务器有一个名为 HEAD 的分支。我已经尝试在本地执行此操作,但 git 警告我这是模棱两可的。通过删除/重命名此分支,我们是否会遇到任何潜在的可怕问题?
问问题
1690 次
3 回答
4
您的服务器应该有一个名为 的分支指针HEAD
,它将指向您的默认分支。默认情况下,git branch -r
将向您显示:
origin/HEAD -> origin/master
于 2013-05-06T18:19:18.110 回答
2
创建一个名为的远程分支HEAD
是可能的,并且似乎不是特别有害:
~/code/foo/bar (master) $ git push origin master:HEAD
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:foo/bar
* [new branch] master -> HEAD
~/code/foo/bar (master) $ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
~/code/foo/bar (master) $ git push origin :HEAD
To git@github.com:foo/bar
- [deleted] HEAD
~/code/foo/bar (master) $ git branch -a
* master
remotes/origin/master
创建一个名为的本地分支HEAD
会产生更恶劣的影响:
~/code/foo/bar (master) $ git checkout -b HEAD
Switched to a new branch 'HEAD'
Your branch is up-to-date with 'origin/master'.
~/code/foo/bar (HEAD) $ git checkout -b fubar
warning: refname 'HEAD' is ambiguous.
fatal: Ambiguous object name: 'HEAD'.
~/code/foo/bar (HEAD) $ git branch -a
* HEAD
master
remotes/origin/master
~/code/foo/bar (HEAD) $ rm .git/refs/heads/HEAD
~/code/foo/bar (HEAD*) $ git checkout master
Switched to branch 'master'
以上所有内容都是通过 OS X 上的 Homebrew 安装的 git 版本 2.3.0。
很容易意外地键入许多上述调用,不幸的是,当(或) 在不适用特殊含义的地方指定时, Git 不会快速失败。编辑:较新版本的 Git 现在会因HEAD
FETCH_HEAD
HEAD
. 例如,使用 git 版本 2.22.0:
~/code/foo/bar (master) $ git checkout -b HEAD
fatal: 'HEAD' is not a valid branch name.
FETCH_HEAD
但是仍然允许调用一个分支。
于 2015-04-13T19:23:22.143 回答