7 astuces Git qui ont changé ma vie
Ces conseils utiles changeront la façon dont vous travaillez avec le système de contrôle de version populaire.
Git est l'un des systèmes de contrôle de version les plus courants disponibles, et il est utilisé sur des systèmes privés et des sites Web hébergés publiquement pour toutes sortes de travaux de développement. Quelle que soit ma maîtrise de Git, il semble qu’il reste toujours des fonctionnalités à découvrir. Voici sept astuces qui ont changé ma façon de travailler avec Git.
1. Correction automatique dans Git
Nous faisons tous parfois des fautes de frappe, mais si la fonction de correction automatique de Git est activée, vous pouvez laisser Git corriger automatiquement une sous-commande mal saisie.
Supposons que vous souhaitiez vérifier le statut avec git status
mais que vous tapez git stats
par accident. Dans des circonstances normales, Git vous indique que « stats » n'est pas une commande valide :
$ git stats
git: ‘stats’ is not a git command. See ‘git --help’.
The most similar command is
status
Pour éviter des scénarios similaires, activez la correction automatique Git dans votre configuration Git :
$ git config --global help.autocorrect 1
Si vous souhaitez que cela s'applique uniquement à votre référentiel actuel, omettez l'option --global
.
Cette commande active la fonction de correction automatique. Un didacticiel approfondi est disponible sur Git Docs, mais essayer la même commande erronée que ci-dessus vous donne une bonne idée de ce que fait cette configuration :
$ git stats
git: ‘stats’ is not a git command. See ‘git --help’.
On branch master
Your branch is up to date with ‘origin/master’.
nothing to commit, working tree clean
Au lieu de suggérer une sous-commande alternative, Git exécute désormais simplement la première suggestion, qui dans ce cas était git status.
2. Comptez vos commits
Il existe de nombreuses raisons pour lesquelles vous devrez peut-être compter vos commits. De nombreux développeurs comptent le nombre de commits pour déterminer quand incrémenter le numéro de build, par exemple, ou simplement pour avoir une idée de la progression du projet.
Compter vos commits est vraiment simple et direct ; voici la commande Git :
$ git rev-list --count
Dans la commande ci-dessus, le nom-branche doit être un nom de branche valide dans votre référentiel actuel.
$ git rev-list –count master
32
$ git rev-list –count dev
34
3. Optimisez votre dépôt
Votre référentiel de code est précieux non seulement pour vous mais aussi pour votre organisation. Vous pouvez garder votre référentiel propre et à jour avec quelques pratiques simples. L'une des meilleures pratiques consiste à utiliser le fichier .gitignore. En utilisant ce fichier, vous dites à Git de ne pas stocker de nombreux fichiers indésirables tels que des binaires, des fichiers temporaires, etc.
Pour optimiser davantage votre référentiel, vous pouvez utiliser le garbage collection Git.
$ git gc --prune=now --aggressive
Cette commande est utile lorsque vous ou votre équipe utilisez beaucoup les commandes pull ou push.
Cette commande est un utilitaire interne qui nettoie les objets Git inaccessibles ou « orphelins » dans votre référentiel.
4. Effectuez une sauvegarde des fichiers non suivis
La plupart du temps, il est possible de supprimer en toute sécurité tous les fichiers non suivis. Mais il arrive souvent que vous souhaitiez supprimer, mais également créer une sauvegarde de vos fichiers non suivis au cas où vous en auriez besoin plus tard.
Git, ainsi que quelques commandes Bash, facilitent la création d'une archive zip pour vos fichiers non suivis.
$ git ls-files --others --exclude-standard -z |\
xargs -0 tar rvf ~/backup-untracked.zip
La commande ci-dessus crée une archive (et exclut les fichiers répertoriés dans .gitignore) avec le nom backup-untracked.zip
5. Connaissez votre dossier .git
Chaque référentiel possède un dossier .git. Il s'agit d'un dossier caché spécial.
$ ls -a
. … .git
Git fonctionne principalement avec deux choses :
- L'arborescence de travail (l'état des fichiers dans votre extraction actuelle)
- Le chemin de votre référentiel Git (plus précisément, l'emplacement du dossier .git, qui contient les informations de version)
Ce dossier stocke toutes les références et autres détails importants tels que les configurations, les données du référentiel, l'état de HEAD, les journaux et bien plus encore.
Si vous supprimez ce dossier, l'état actuel de votre code source n'est pas supprimé, mais vos informations distantes, telles que l'historique de votre projet, le sont. La suppression de ce dossier signifie que votre projet (au moins la copie locale) n'est plus sous contrôle de version. Cela signifie que vous ne pouvez pas suivre vos modifications ; vous ne pouvez pas tirer ou pousser depuis une télécommande.
En règle générale, vous n'avez pas grand-chose à faire ou devriez faire dans votre dossier .git. Il est géré par Git et est considéré comme généralement interdit. Cependant, il existe quelques artefacts intéressants dans ce répertoire, notamment l'état actuel de HEAD :
$ cat .git/HEAD
ref: refs/heads/master
Il contient également, potentiellement, une description de votre référentiel :
$ cat .git/description
Il s'agit d'un référentiel sans nom ; modifiez ce fichier 'description' pour nommer le référentiel.
Le dossier Git hooks est également ici, avec des exemples de fichiers hook. Vous pouvez lire ces exemples pour avoir une idée de ce qui est possible grâce aux hooks Git, et vous pouvez également lire cette introduction au hook Git par Seth Kenlon.
6. Afficher un fichier d'une autre branche
Parfois, vous souhaitez afficher le contenu du fichier depuis une autre branche. C'est possible avec une simple commande Git, et sans réellement changer de branche.
Supposons que vous ayez un fichier appelé README.md et qu'il se trouve dans la branche principale. Vous travaillez sur une branche appelée dev.
Avec la commande Git suivante, vous pouvez le faire depuis le terminal.
$ git show main:README.md
Une fois que vous avez exécuté cette commande, vous pouvez afficher le contenu du fichier dans votre terminal.
7. Rechercher dans Git
Vous pouvez effectuer une recherche dans Git comme un pro avec une simple commande. Mieux encore, vous pouvez effectuer une recherche dans Git même si vous n'êtes pas sûr du commit (ou même de la branche) dans lequel vous avez apporté vos modifications.
$ git rev-list --all | xargs git grep -F ‘’
Par exemple, supposons que vous souhaitiez rechercher la chaîne « font-size: 52 px; » dans votre dépôt :
$ git rev-list –all | xargs git grep -F ‘font-size: 52 px;’
F3022…9e12:HtmlTemplate/style.css: font-size: 52 px;
E9211…8244:RR.Web/Content/style/style.css: font-size: 52 px;
Essayez ces conseils
J'espère que ces conseils avancés vous seront utiles et augmenteront votre productivité, vous faisant ainsi gagner beaucoup de temps.
Avez-vous des astuces Git que vous aimez ? Partagez-les dans les commentaires.