Git Tips

clone from github behind an evil firewall

Standard:

git clone git@github.com:yogsototh/project.git

Using HTTPS port:

git clone git+ssh://git@github.com:443/yogsototh/project.git

clone all branches

git clone can only fetch the master branch.

If you don’t have much branches, you can simply use clone your project and then use the following command:

git branch --track local_branch remote_branch

for example:

$ git clone git@github:yogsototh/example.git
$ git branch
master *
$ git branch -a
master *
remotes/origin/HEAD -> origin/master
remotes/origin/experimental
$ git branch --track experimental remotes/origin/experimental
$ git branch
master *
experimental

If you have many branches it can be useful to use the following script/long command line.

# first clone your project
$ git clone git@github.com:yogsototh/project.git

# copy all branches
$ zsh
$ cd project
$ for br in $( git br -a ); do
    case $br in
    remotes/*) print $br ; 
        case ${br:t} in
            master|HEAD) continue ;;
            *) git branch --track ${br:t} $br ;;
        esac ;;
    esac
done

comments

Copyright ©, Yann Esposito
Created: 03/22/2010
Entirely done with Vim and nanoc
Validation [xhtml] . [css] . [rss]