致命的:不是有效的对象名称:'master'

Roy*_*ten 167 git

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

git init 
Run Code Online (Sandbox Code Playgroud)

一个文件夹,它不会创建一个主分支.我这样做的原因:

git branch 
Run Code Online (Sandbox Code Playgroud)

它没有列出任何东西.当我做:

git --bare init
Run Code Online (Sandbox Code Playgroud)

它创建文件.当我输入

git branch master 
Run Code Online (Sandbox Code Playgroud)

它说:

fatal: Not a valid object name: 'master'.
Run Code Online (Sandbox Code Playgroud)

mea*_*gar 257

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

这是事实,也是预期的行为.master在你提交某些东西之前,Git不会创建分支.

当我这样做git --bare init时创建文件.

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

当我输入git branch master它时说"致命:不是有效的对象名称:'主'"

这也是正确的行为.在你提交之前,没有主分支.

你没有问过一个问题,但我会回答我以为你要问的问题.将一个或多个文件添加到目录中,然后git add准备提交.然后git commit创建您的初始提交和master分支.

  • 你可以使用`git checkout -b <branchname>`来改变HEAD - 你不需要编辑文件. (11认同)
  • 那么,如果我根本不想使用一个称为“ master”的分支指针怎么办?如果我希望将其称为“主要”怎么办?没有办法以第一个分支指针的其他名称开头吗?没有“ git init”参数吗?是否可以更改.git / HEAD中列出的名称?还有其他一些我需要更改的文件吗? (2认同)

use*_*998 21

完成第一次提交后,Git会创建一个主分支.如果存储库中没有代码,那么就没有任何分支可用.

  • 但是你需要一个新的分支来推送到 master。 (2认同)

Bor*_*lid 16

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

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


Fun*_*hor 12

在创建新分支之前,您需要至少在master上提交一次.


kru*_*ubo 7

将 Superfly Jon 的评论复制到答案中:

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

git checkout -b <branchname>
Run Code Online (Sandbox Code Playgroud)