Table des matières

ghq permet de cloner un projet sans se soucier où sera cloné le projet, il permet également de cloner en respectant l’arborescence du repo distant.

git clone, c’est pourtant simple !

Le processus de clonage avec la commande git clone peut sembler simple au premier abord, mais lorsqu’on gère plusieurs dépôts Git, cela peut rapidement devenir complexe. C’est encore plus vrai lorsque l’on travaille avec des forks de dépôts. L’outil ghq vient simplifier cette gestion en centralisant les dépôts dans un emplacement spécifique sur votre machine.

Imaginons que vous désiriez travailler avec des dotfiles et que vous récupériez un dotfiles avec la commande ghq get https://github.com/mathiasbynens/dotfiles.git. Et que maintenant vous voulez également travailler sur votre dotfiles, pas besoin de se poser la question où vous alliez cloner votre projet, il vous suffit d’exécuter ghq get https://github.com/badele/dotfiles.git. Après l’exécution de cette commande, la structure des projets sera organisée de manière claire dans votre répertoire ghq.

De plus, lors de collaborations en équipe impliquant le partage de scripts utilisant des projets clonés, il n’est pas nécessaire de spécifier des chemins spécifiques tels que /usr/local/nosprojets/xxx. Il suffit par exemple d’exporter une variable, comme TEAM_PROJECT=~/ghq, pour toute l’équipe et d’utiliser cette référence dans vos scripts. Ainsi, vous pouvez utiliser $TEAM_PROJECT/mateam/monprojet/bin/monexecutable dans vos scripts, assurant une cohérence dans l’accès aux ressources partagées.

tree
└─ ~/ghq
   └─ github.com
      ├─ mathiasbynens
      │  └─ dotfiles
      └─ badele
         └─ dotfiles

Démo

script

demo-ghq.tape
Output demo-ghq.gif
 
Require nix-shell
 
Set TypingSpeed 75ms
Set FontSize 12
Set Width 800
Set Height 680
 
Hide
Type "nix-shell -p ghq tree --run zsh" Sleep 500ms Enter Sleep 2s
Type "reset" Sleep 500ms Enter Sleep 2s
Show
 
Type "tree -d -L 6 ~/ghq" Sleep 500ms Enter Sleep 2s
 
Type "ghq get https://github.com/mathiasbynens/dotfiles.git" Sleep 500ms Enter Sleep 2s
 
Type "tree -d -L 6 ~/ghq" Sleep 500ms Enter Sleep 2s
 
Type "ghq get https://github.com/badele/dotfiles.git" Sleep 500ms Enter Sleep 2s
 
Type "tree -d -L 6 ~/ghq" Sleep 500ms Enter Sleep 2s
 
Sleep 5s

Sources