博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Git切换远程分支

Posted on 2019-04-22 10:03  徐自勉  阅读(41449)  评论(0编辑  收藏  举报

     1. 切换git远程分支,使用命令:git checkout -b 分支名称。 

  •   注意:切换远程分支一定要带伤-b 参数,只有切换本地分支的时候才不需要 -b参数,-b 的意思是 base,以当前分支为 base,新建一个名叫xxx 的分支  。如果使用 "git branch 远程分支名" 命令切换到远程服务器分支上,

           则会导致如下错误提示:

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

          这时候再使用git branch 命令查看本地分支,就会发现当前分支是在一个 叫“(HEAD detached at 远程分支名)”上。detached是游离的意思,表名当前分支是在游离状态。    

     2. 远程服务器新建了分支,本地无法checkout ,或者本地看不到,使用命令: git branch -r 可以查看远程分支。

          如果这时候直接使用 git checkout -b xxxx 去切换到远程分支,是会报如下错误的
        

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

      请使用命令:git fetch 更新remote索引

      取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名,例:$ git fetch <远程主机名> <分支名>