当前位置:  开发笔记 > 运维 > 正文

git checkout master不切换分支 - 存储库坏了吗?

如何解决《gitcheckoutmaster不切换分支-存储库坏了吗?》经验,为你挑选了2个好方法。

tl; dr:git checkout master没有切换到master分支,根本没有给出错误或任何输出,我也不知道为什么.任何其他分支工作正常.

我有一个git存储库,由分支developmentmaster.我做了一个新的克隆存储库,检查分支development是默认的.

$ git clone  --branch development
$ git branch -a
* development
origin/HEAD -> origin/development
origin/development
origin/master
$ git show-ref 
656c781c2affc26792f857baf8e232de07101535 refs/heads/development
656c781c2affc26792f857baf8e232de07101535 refs/remotes/origin/HEAD
656c781c2affc26792f857baf8e232de07101535 refs/remotes/origin/development
cfee1a1761642453edf5d001565f23b50243ff09 refs/remotes/origin/master

ref master指向正确,提交确实存在并且是我的master分支的最新提交.

到目前为止,一切看起来都很正常,但是当我尝试切换到掌握时,这种情况正在发生:

$ git checkout master
$ git branch 
* development

没有来自结账的消息,没有错误,没有任何消息,并且没有切换分支.

到目前为止我尝试过的事情:

master2从同一个commit => checkout 创建第二个分支工作正常.

删除并重新创建分支主数据本地和原点=>再次无法检出

git checkout -b master --track origin/master=>有效,但我认为没有必要使用此命令,因为这是git checkout master应该自动执行的操作

承诺并推动掌握工作,但不会改变结账问题

我尝试了几个git版本(1.9,2.2)和机器(linux,windows),问题随处可见.

还有什么想法?我错过了什么?我的存储库坏了吗?我怎样才能解决这个问题?



1> Nick..:

如果您的仓库的文件夹或文件名与分支名称相同,那么您需要:git checkout xyz --最后添加额外--的.它告诉git使用分支或提交而不是尝试使用文件夹/文件名.

在另一个stackoverflow帖子上找到答案:当存在同名文件时,Git更改分支



2> 小智..:

当源树中有一个文件夹主文件时,我看到过类似的东西.不幸的是,我没有找到一种方法来告诉git将值解释为分支.重命名文件夹为我修复了问题.


也进入这个并没有意识到有一些目录与我当前工作目录中的目标分支的名称相匹配.如果您将目录(例如cd)切换到子目录,您将能够切换分支也没问题.
推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有