74 lines
1.6 KiB
Markdown
74 lines
1.6 KiB
Markdown
-----
|
|
isHidden: false
|
|
menupriority: 1
|
|
kind: article
|
|
created_at: 2010-03-22T10:42:27+02:00
|
|
title: Astuces Git
|
|
author_name: Yann Esposito
|
|
author_uri: yannesposito.com
|
|
tags:
|
|
- git
|
|
- tip
|
|
|
|
-----
|
|
|
|
## Cloner de github à travers un pare-feu
|
|
|
|
La façon standard:
|
|
|
|
<div><code class="zsh">
|
|
git clone git@github.com:yogsototh/project.git
|
|
</code></div>
|
|
|
|
En utilisant le port HTTPS :
|
|
|
|
<div><code class="zsh">
|
|
git clone git+ssh://git@github.com:443/yogsototh/project.git
|
|
</code></div>
|
|
|
|
## Cloner toutes les branches
|
|
|
|
`git clone` peut seulement récuper la branche `master`.
|
|
|
|
Si vous n'avez pas beaucoup de branches, vous pouvez simplement les clone le project et ensuite pour chacune d'entre elle lancer la commande suivante :
|
|
|
|
<div><code class="zsh">
|
|
git branch --track local_branch remote_branch
|
|
</code></div>
|
|
|
|
par exemple :
|
|
<div><code class="zsh">
|
|
$ 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
|
|
</code></div>
|
|
|
|
Si vous avez beaucoup de branches il peut être utile d'utiliser *le script*/*la longue ligne de commande* suivant(e) :
|
|
|
|
<div><code class="zsh">
|
|
# 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
|
|
</code></div>
|
|
|
|
Et toutes les branches seront récupérées en local.
|