root@tank-machine:/opt/android/source/kernel/common# git branch -a
  master
* remotes/origin/android-2.6.39
  remotes/origin/HEAD -> origin/master
  remotes/origin/android-2.6.39
  remotes/origin/android-3.0
  remotes/origin/master已经选择了分支,没有看见相应的内核文件,怎么回事?root@tank-machine:/opt/android/source/kernel/common# git checkout -b remotes/origin/android-2.6.39 kennel
fatal: git checkout: updating paths is incompatible with switching branches.
Did you intend to checkout 'kennel.git' which can not be resolved as commit?这个指令又是哪里错了?

解决方案 »

  1.   

    git checkout -b kennel remotes/origin/android-2.6.39这两个参数反了吧.
    先写新分支的名字, 再写仓库中分支的名字
      

  2.   


    git checkout命令的话如果是本地分支, 直接加分支名字就可以了( 如现在运行 git checkout master), 如果是远程仓库里面的分支, 不加-b参数的话( 如git checkout remotes/origin/android-2.6.39)也可以吧2.6.39分支的内容checkout出来, 但是当前分支的话没有定义,git branch查看会是no branch. 指定-b参数+分支名字( git checkout -b <new_branch_name> remotes/origin/android-2.6.39)就是把2.6.39这个分支checkout出来, 并命名为<new_branch_name>的本地分支. 具体可以参考http://progit.org/book/zh/ch3-5.html这里.