为什么我无法 create/checkout 这个分支?

Why am I unable to create/checkout this branch?

我正在尝试创建本地 Git 分支,但它不起作用。 以下是我正在使用的命令:

tablet:edit11$ git checkout -b edit_11
Switched to a new branch 'edit_11'
tablet:edit11$ git checkout edit_11
error: pathspec 'edit_11' did not match any file(s) known to git.
tablet:edit11$ git branch
tablet:edit11$

怎么回事?

第一行创建新分支并将您移至该分支。你不需要再做。只使用:

git checkout -b edit_11

您已成功创建并且 "switched to" 一个 b运行ch 在您 运行

时调用了 edit_11
git checkout -b edit_11

但是,所有内容(包括空 git branch 输出)都表明您刚刚初始化了存储库并且尚未进行初始提交。如果没有提交,b运行ches 没有任何有用的指向,也没有任何东西可以检查。

因此,当您 运行

git checkout edit_11

您收到以下错误,

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

即使 b运行ch edit_11 确实存在。


问题重现如下:

$ mkdir testgit
$ cd testgit
$ git init
Initialized empty Git repository in /xxxx/testgit/.git/
$ git checkout -b edit_11
Switched to a new branch 'edit_11'
$ git checkout edit_11
error: pathspec 'edit_11' did not match any file(s) known to git.
$ git branch
$

在 b运行ch edit_11 上进行第一次提交后,git checkout edit_11 将不再抛出任何错误。请注意,这里是空操作,因为 current b运行ch 已经是 edit_11.

$ printf foo > README
$ git add README
$ git commit -m "add README"
[edit_11 (root-commit) 90fe9c1] add README
 1 file changed, 1 insertion(+)
 create mode 100644 README
$ git branch
* edit_11
$ git checkout edit_11 
Already on 'edit_11'