不是一个有效的对象名称:'master'

我有一个私人服务器运行git 1.7 当I

git init

一个文件夹,它不创建主分支。 因为当我这样做:

git branch

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

git --bare init

它创建文件。 当我输入

git branch master

它说:

fatal: Not a valid object name: 'master'.
371697 次浏览

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

这是事实,也是意料之中的行为。Git不会创建master分支,直到你提交一些东西。

当我执行git --bare init时,它创建了文件。

非裸git init也会在项目根目录的隐藏.git目录中创建相同的文件。

当我输入git branch master时,它说“致命:不是一个有效的对象名称:'master'”

这也是正确的行为。在你提交之前,有不是主人分支。

你还没问问题,但我可以回答你想问的问题。将一个或多个文件添加到你的目录中,并git add它们来准备提交。然后git commit来创建你的初始提交和master分支。

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

现在,即使在做了git init之后,你也不会有master分支的原因是没有提交:当你创建第一个提交时,你将有一个master分支。

Git在完成第一次提交后创建一个主分支。如果存储库中没有代码,那么就没有什么可以使用分支的。

在创建一个新的分支之前,你至少需要在master上提交一次。

将Superfly Jon的评论复制成一个答案:

要在不提交master的情况下创建一个新分支,你可以使用:

git checkout -b <branchname>

请尝试在主分支中创建任何文件并提交。然后创建其他分支。它应该会起作用。

这不是一个传统的答案,但我对我的情况也有一个解决方案。 对于这个完全相同的问题,我注意到当我在已经存在的存储库中创建另一个存储库时发生了这个问题

所以如果你克隆了一个repo,然后再次git init,它会导致这个问题。然后你必须删除整个文件夹并重新克隆它。谢谢。

这是因为你还没有提交任何东西 首先,你必须use git add .git add <file-name>, 那么你必须使用git commit -m "committed successfully"
现在你可以创建一个新的分支