How to clone all remote branches in Git?

后端 未结 30 2102
情话喂你
情话喂你 2020-11-22 01:08

I have a master and a development branch, both pushed to GitHub. I\'ve cloned, pulled, and fetched, but I re

30条回答
  •  被撕碎了的回忆
    2020-11-22 01:52

    First, clone a remote Git repository and cd into it:

    $ git clone git://example.com/myproject
    $ cd myproject
    

    Next, look at the local branches in your repository:

    $ git branch
    * master
    

    But there are other branches hiding in your repository! You can see these using the -a flag:

    $ git branch -a
    * master
      remotes/origin/HEAD
      remotes/origin/master
      remotes/origin/v1.0-stable
      remotes/origin/experimental
    

    If you just want to take a quick peek at an upstream branch, you can check it out directly:

    $ git checkout origin/experimental
    

    But if you want to work on that branch, you'll need to create a local tracking branch which is done automatically by:

    $ git checkout experimental
    

    and you will see

    Branch experimental set up to track remote branch experimental from origin.
    Switched to a new branch 'experimental'
    

    Here, "new branch" simply means that the branch is taken from the index and created locally for you. As the previous line tells you, the branch is being set up to track the remote branch, which usually means the origin/branch_name branch.

    Now, if you look at your local branches, this is what you'll see:

    $ git branch
    * experimental
      master
    

    You can actually track more than one remote repository using git remote.

    $ git remote add win32 git://example.com/users/joe/myproject-win32-port
    $ git branch -a
    * master
      remotes/origin/HEAD
      remotes/origin/master
      remotes/origin/v1.0-stable
      remotes/origin/experimental
      remotes/win32/master
      remotes/win32/new-widgets
    

    At this point, things are getting pretty crazy, so run gitk to see what's going on:

    $ gitk --all &
    

提交回复
热议问题