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不遵守我的命令来切换分支?
答案 0 :(得分:0)
如果 git分支不显示分支“ python”,则说明您有问题。您启动了项目吗?就我而言,这是git branch在linux和Windows中显示两个分支的示例。我的二级分支“ perso” 位于 .git / refs / heads 中。效果很好。
进入您的 .git / refs 并在differents目录中搜索python。如果您没有看到python,则说明它不存在。
答案 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。