在git的空项目上创build分支

假设我即将在3个不同的文件(fileA,fileB和fileC)中实现3个不同的function,用于我的一个新项目。

我想我只需要添加我的(当前为空)项目git:

git init 

然后创build3个不同的分支:

 git branch file1_branch git branch file2_branch git branch file3_branch 

但是这不起作用:

致命的:不是有效的对象名称:“主”。

为什么是这样?

也许问题可能是相关的,即使主分支是不是在这个时候创build​​? 我试着做一个git branch 。 它一无所获。

然后我想了一下做一个“空”的承诺来强制git创buildmaster分支:

 git commit -m `initial_commit` 

但是因为我没有将任何文件添加到暂存区,所以不起作用。

请记住,我即将开始我的项目,所以在这一点上,我没有任何文件添加到提交!

如何解决这个问题? 难道我做错了什么?

谢谢

Git将分支表示为指向该分支中最新提交的指针。 如果还没有创build提交,那么该分支没有任何指向。 所以你不能真正创build分支,直到你至less有一个提交。

Git代表提交作为一个或多个父提交的提交(或者如果这是初始提交,则为全零父提交),提交消息和一些其他元数据以及树引用。 树基本上是每个目录中每个文件中的内容的清单。 如果你的目录是空的,那么树中就没有东西了。 现在,实际上可以创build一个空的提交作为你的第一次提交; 你可以运行git commit --allow-empty -m "initial commit" 。 但是这不是使用Git的常见方式。

在Git中,除非您需要,否则不要使用分支。 除非您有一些内容需要分支,否则不需要创build多个分支。 如果你在发展的一开始就创造了三个分支,你们之间没有共同的祖先吗? 在这种情况下,为什么不build立三个回购协议? 或者你是否将同步更新所有三个,直到他们开始分歧? 这似乎是很多额外的工作,以保持所有的更新; 你应该等待创造他们,直到他们需要分歧。

但是如果你想使用这个工作stream,你可以运行git commit --allow-empty -m "initial commit"来创build一个空的初始提交。

你可以做一个空的初始提交:

 git commit --allow-empty 

然后,你可以创build你喜欢的分支。