Ce que vous devez savoir sur la nouvelle livraison 1.8.2 de Git

Nicola Paolucci
Nicola Paolucci
Retour à la liste

J'aime disséquer les notes de livraison de mes outils préférés pour y trouver des trésors cachés (ou pas). À chaque fois, c'est un peu Noël. Un sentiment d'impatience et de curiosité m'envahit à chaque nouvelle version de mon fidèle gestionnaire de fenêtres open source OSX Slate, sur Rails, Django, CoffeeScript et, bien sûr, Git (et bien d'autres).

Mise à niveau, mise à niveau, mise à niveau

La nouvelle livraison Git 1.8.2 est là. Bien sûr, cela implique une mise à niveau vers la version la plus récente. Mais cela ne devrait pas être trop difficile :

  • Saisissez simplement brew update && brew upgrade git si vous utilisez homebrew sous OSX.
  • Use a magic apt trick if on Ubuntu based distributions (I leave other distributions as an exercise for the reader).
  • Exécutez simplement le nouveau programme d'installation sous Windows.

Nouveautés de Git 1.8.2

Comme toujours, de nombreux correctifs ont été apportés. Certains détails spécifiques ont attiré mon attention dans cette dernière livraison.

Comportement simplifié pour add -u et -A

git add -u est le flag utilisé pour ordonner à Git de stager également des suppressions lorsque des éléments du répertoire courant sont transférés dans l'index.

Et, git add -A sert à ajouter tout et à stager les suppressions à partir du répertoire courant. Cette commande était l'équivalent de :

git add .; git add -u

Ce comportement a évolué, et les flags -u/-A opèrent à présent sur l'ensemble de l'arborescence source pour l'aligner sur git commit -a et d'autres commandes qui fonctionnent de la sorte. C'est un revirement incompatible qui, espérons-le, aura peu de conséquences.

Modèle **/ utile à utiliser dans .gitignore

Ce cher fichier .gitignore s'offre un nouveau modèle **/ sympa, qui correspond au niveau zéro ou plus d'un sous-répertoire : P. ex., « foo/**/bar » correspond à « bar » dans « foo » lui-même ou dans un sous-répertoire de « foo ».

En outre, Git a intégré une commande check-ignore qui sert à déboguer les paramètres de .gitignore : P. ex.

[4967] λ # git check-ignore --verbose dist/
.gitignore:1:dist dist/

Script d'exécution amélioré

Si vous utilisez la ligne de commande et que vous avez configuré la complétion automatique de git shell, vous aurez probablement remarqué combien c'est utile. Dans cette livraison, le script de complétion a été amélioré pour afficher les fichiers pertinents lorsque vous exécutez git add, tout en ignorant les éléments inutiles, comme les chemins inchangés.

Alias colorés et interactions de script

J'utilise des commandes log très colorées, comme je l'ai montré dans mon billet sur les alias que j'ai posté il y a un certain temps. Cette livraison intègre une fonctionnalité sympa, qui désactive automatiquement les couleurs lorsque la sortie n'est pas utilisée pour un terminal. Elle est très pratique lorsque vous exécutez les commandes Git dans des scripts.

How do you use it? Just pre-pend auto to the color specifier like:

%C(auto,blue)Hello%C(auto,reset)

Le graphique de l'ascendance dans git log fonctionne désormais avec la sortie diff combinée.

La sortie --graph de git log était assez difficile à obtenir lorsque vous ajoutiez -p pour afficher la sortie diff combinée. Désormais, tout fonctionne comme prévu :

git log -p --cc --graph

Meilleur statut de la synchronisation entre les branches locales et distantes

This is actually something from the 1.8.1 release but neat nonetheless:

When "git checkout" checks out a branch, it tells the user how far behind (or ahead) the new branch is relative to the remote tracking branch it builds upon. The message now also advises how to sync them up by pushing or pulling. This can be disabled with the advice.statusHints configuration variable.

Conclusions

C'est tout pour l'instant. Essayez les goodies, dites-moi ce que vous en pensez sur Twitter sous @AtlDevTools.

Prêt à découvrir Git ?

Essayez ce tutoriel interactif.

Démarrez maintenant