你是一个尚未出生的分支

时间:2014-06-02 19:11:35

标签: git

我有一个奇怪的问题:

$ cd ~/htdocs

$ mkdir test

$ cd test

$ git init
Initialized empty Git repository in /home/deep/htdocs/test/.git/

$ git checkout master
error: pathspec 'master' did not match any file(s) known to git.

$ git checkout -b master
fatal: You are on a branch yet to be born

$ git checkout origin/master
error: pathspec 'origin/master' did not match any file(s) known to git.

$ git branch -a
(empty this)

但这是新的本地空回购。主分支在哪里?

7 个答案:

答案 0 :(得分:30)

与以往一样,Git是对的,它只是一种古怪的说法:当你创建一个存储库时,主分支实际上还没有存在,因为它没有任何东西可以指向它。

您是否尝试过git init之后提交的内容?当然,添加遥控器并从中拉出也是可行的。

答案 1 :(得分:3)

我和你有同样的问题。我解决的方法是创建一个新的空文件,只是为了在项目中有一个文件。

git add someFile然后commit -m "first commit",最后是push origin master

我希望它有所帮助

答案 2 :(得分:1)

这是因为您想要

git init

.gitignore 文件所在的根文件夹中的

。 创建一个子文件夹,然后尝试。

答案 3 :(得分:0)

当我打开多个Windows资源管理器时,我收到了相同的错误消息,这两个消息都打开了相同的现有本地git仓库。

我在一个窗口中创建了一个新分支,使用右键单击 - >创建分支。

稍后,在Windows资源管理器的第二个实例中,我尝试右键单击 - >分支(找出当前检出的分支)。然后我得到了消息"你在一个尚未出生的分支上#34;。

只需关闭第二个资源管理器即可解决问题,并且错误未显示在第一个资源管理器中。

答案 4 :(得分:0)

如果有人到达这一部分,我认为你对最佳答案没有运气。我也得到了与OP相同的情况。试试这个:

  1. 在另一个目录中提取您的仓库
  2. 将.git文件夹复制到新的仓库

答案 5 :(得分:0)

我遇到了与OP相同的问题。最初,我做了以下事情:

md Project
cd Project
git init
git remote add origin git@domain.com:user/repo.git

所有后续git命令都具有与OP相同的错误。

对我有用的是删除Project文件夹,然后从父文件夹发出以下命令:

git clone http[s]://domain.com/user/repo.git Project

然后它提示我输入我的用户名和密码以访问该存储库。每个git命令都要求提供凭据,因此我运行了以下命令:

git config --global credential.helper wincred

下一个git命令要求输入我的凭据,然后将其存储在 Windows凭据管理器(可通过控制面板进行查看)。现在git命令可以在不提示输入凭据的情况下运行。

答案 6 :(得分:0)

有一种无需实际提交任何文件即可初始化新存储库的方法:

git commit --allow-empty -m "Initialization"

如果您碰巧有--bare回购,则解决方法如下:

mkdir /tmp/empty_directory
git --work-tree=/tmp/empty_directory checkout --orphan master
git --work-tree=/tmp/empty_directory commit --allow-empty -m "Initialization"
rm -rf /tmp/empty_directory