2012-02-06 51 views
113

我有一个专用服务器运行git 1.7 当我致命的:不是有效的对象名称:“主人”

git init 

文件夹不会创建一个主分支。 原因当我这样做:

git branch 

它没有列出任何东西。 当我这样做:

git --bare init 

它创建的文件。 当我键入

git branch master 

它说:

fatal: Not a valid object name: 'master'. 

回答

170

当我git init一个文件夹不会创建一个主分支

这是真实的,预期的行为。 Git不会创建master分支,直到您提交了某些内容。

当我做git --bare init它创建的文件。

非裸git init还将创建相同的文件,在你的项目的根隐藏.git目录。

当我键入git branch master它说:“致命的:不是有效的对象名称:‘主人’”

这又是正确的行为。直到你提交,没有主人分支。

你还没有问过一个问题,但我会回答我假设你打算问的问题。将一个或多个文件添加到您的目录,然后git add他们准备提交。然后git commit创建你的初始提交和master分支。

+1

那么,如果我从来不想要一个名为“master”的分支指针呢?如果我想将它称为“主”,该怎么办?没有办法用第一个分支指针的不同名称开始?没有“git init”参数?我可以去更改.git/HEAD中列出的名称吗?还有一些其他文件需要更改吗? – Jemenake 2013-05-13 17:49:15

+1

@Jemenake然后启动你的仓库,进行提交并重命名分支。如果你真的想避免创建一个“master”分支,编辑'.git/HEAD',并将'refs/heads/master'改为'refs/heads/main',但是*没有任何理由*做这个。在第一次提交后重命名你的分支。 – meagar 2013-05-13 20:15:39

+7

你可以使用'git checkout -b '来改变HEAD - 你不需要编辑文件。 – 2013-10-31 14:56:53

14

首先,当你创建一个“裸仓库”时,你不会对它做任何工作(它不包含工作副本,所以git branch命令没有用)。

现在,即使在执行git init之后,您没有master分支的原因是没有提交:当您创建第一个提交时,您将有一个master分支。

+1

好的,清楚。但是当我承诺它说:致命的:空识别 – 2012-02-06 15:28:55

+0

我修正了。但是,当我想从其他计算机上获取此回购时。我应该在那里做git init吗? – 2012-02-06 15:37:22

+0

@RoyvanZanten你可以使用'git clone'来保存在接收端做'git init'。 – Borealid 2012-02-06 16:13:45

14

Git在完成第一次提交后创建主分支。如果存储库中没有代码,没有分支可供使用。

4

您需要在创建新分支之前至少提交一次主数据。

相关问题