**[[https://github.com/x-motemen/ghq|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 ======
{{:l_atelier:demo-ghq.gif|}}
====== script ======
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 =====
* [[:CharteIA]]
* openai
* Reformulation des phrases
* Correction des fautes d’orthographes