Git拒绝切换分支

时间:2019-04-16 18:13:18

标签: git bitbucket

Git拒绝在Linux下切换分支。

我已经初始化了我的项目。 python分支存在于linux上,当我发出以下命令时可以看到它:

git branch -a | grep python remotes/origin/python

但是在linux下git拒绝切换到python分支。

观看:

git branch
* master

然后我这样做:

git checkout python

再次检查分支:

git branch
* master

再试一次:

git checkout origin python

再次检查,仍在主菜单下:

git branch
* master

最后一次尝试:

git checkout --force python

仍在同一分支中。我在掌握中:

git branch
* master

我什至尝试删除整个目录,然后再次将其检出。一样。我无法切换到Linux下名为python的分支。

在Windows上可以正常工作。我可以来回切换。但是我也需要在Linux上进行测试。

为什么git不遵守我的命令来切换分支?

5 个答案:

答案 0 :(得分:0)

如果 git分支不显示分支“ python”,则说明您有问题。您启动了项目吗?就我而言,这是git branch在linux和Windows中显示两个分支的示例。我的二级分支“ perso” 位于 .git / refs / heads 中。效果很好。

进入您的 .git / refs 并在differents目录中搜索python。如果您没有看到python,则说明它不存在。 Git branch

答案 1 :(得分:0)

python分支是否存在?

尝试

git checkout -b python.

-b将创建分支。

答案 2 :(得分:0)

应该从远程拉分支。

尝试:git pull origin python

然后检查一下。

答案 3 :(得分:0)

git checkout python应该会产生如下输出:

Branch 'python' set up to track remote branch 'python' from 'origin'.
Switched to a new branch 'python'

命令git checkout origin python应该给您这样的错误:

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

如果两个命令都没有输出没有,则说明您的git非常损坏,或者很有可能-您看不到STDERR的输出,因为它已重定向到其他地方。

您可以像这样测试它(假设使用标准bash shell):

echo 1>&2 Hello World

如果没有输出,则说明您的终端/外壳无聊。如果有输出,则将“仅” git的错误输出屏蔽。在这种情况下,您可以

git checkout python 2>&1

查看输出(因为git branch -a可以看到STDIN,所以可见。)

答案 4 :(得分:0)

有时,使用可视工具可能会很有帮助。没有任何耻辱。您是否尝试过像GitKraken这样的工具?它适用于Linux。