为什么我无法创建/签出此分支?

时间:2015-08-20 05:11:57

标签: git branch git-checkout

我正在尝试创建一个本地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$

发生了什么?

2 个答案:

答案 0 :(得分:2)

您已成功创建并且"已切换为"当你跑

时,一个名为edit_11的分支
git checkout -b edit_11

但是,所有内容(包括空git branch输出)表示您刚刚初始化了存储库并且尚未进行初始提交。如果没有提交,分支没有任何有用的指向,没有什么可以检查。

因此,当你运行

git checkout edit_11

您收到以下错误,

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

即使分支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
$

在分支edit_11上进行第一次提交后,git checkout edit_11将不再抛出任何错误。请注意,这是一个no-op,因为当前分支已经是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'

答案 1 :(得分:0)

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

git checkout -b edit_11
相关问题