当您创建新存储库并运行git branch
时,它会以静默方式退出。例如:
$ mkdir /tmp/foo; cd /tmp/foo; git init
Initialized empty Git repository in /tmp/foo/.git/
$ git branch
为什么命令不提供任何输出,或显示主分支?
答案 0 :(得分:8)
尚无分支头。
在您第一次提交之前,Git存储库没有分支。新初始化的存储库将HEAD设置为refs / heads / master,但refs / heads / master将不存在或包含提交指针,直到第一次提交为止。
在提交期间,Git取消引用symbolic-ref HEAD以找到当前分支的头部,然后使用git-commit-tree提供的提交哈希更新该头部。
最终结果是git branch
无法在新存储库中报告。如果没有分支头,它只是以退出状态为零静默终止。
答案 1 :(得分:2)
请注意,分支只是指向提交的指针 由于空的仓库(其empty tree)没有提交,因此您没有分支。
第一次提交将创建一个名为“master
”的分支,因为HEAD
引用refs/heads/master
。
如果要在不同分支上创建第一个提交(而不是master
),则需要首先更改HEAD的符号引用(如this thread中所述):
git symbolic-ref HEAD refs/heads/non-master
然后进行第一次提交。
答案 2 :(得分:0)
是的,您首先需要执行
$ git add .
$ git commit -m 'first commit'
命令。