【发布时间】:2016-03-21 03:43:10
【问题描述】:
tl;dr:git checkout master 没有切换到 master 分支,没有给出任何错误或任何输出,我不知道为什么。任何其他分支都可以正常工作。
我有一个 git 存储库,它由分支 development 和 master 组成。我对存储库进行了全新克隆,默认签出分支development。
$ git clone <REPO-URL> --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 分支的最新提交。
到目前为止,一切看起来都很正常,但是当我尝试切换到 master 时,这种情况正在发生:
$ git checkout master
$ git branch
* development
结帐没有消息,没有错误,什么都没有,分支没有切换。
到目前为止我尝试过的事情:
- 从同一个提交创建第二个分支
master2=> 签出工作正常。 - 删除并重新创建本地和原点的主分支 => 再次无法结帐
-
git checkout -b master --track origin/master=> 有效,但我认为没有必要使用此命令,因为这是git checkout master应该自动执行的操作 - 提交并推送到主作品,但不改变结帐问题
- 我尝试了几个git版本(1.9、2.2)和机器(linux、windows),到处都是问题。
还有什么想法吗?我错过了什么?我的存储库坏了吗?我该如何解决这个问题?
【问题讨论】:
-
那么您希望
git checkout master像git checkout -b master --track origin/master那样创建一个本地跟踪分支吗?您不想创建与远程主分支不同的本地主分支,对吗?你是绝对正确的,你的命令应该可以工作,前提是只有一个遥控器具有匹配名称的分支。真不知道怎么一点错误信息都没有……
标签: git git-checkout