Ce que vous devez savoir sur le nouveau Git 1.8.3

Nicola Paolucci
Nicola Paolucci
Retour à la liste

Whether you use git on the command line or via a tool of choice like Sourcetree; whether you host your code on Bitbucket Cloud or on Stash (now called Bitbucket Server) behind your company firewall, if you're like me - wink - when a new git release comes out it's always a party.

Des chemins de mise à niveau facilités pour les gitters

La nouvelle livraison Git 1.8.3 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 (en raison d'un bug de dernière minute découvert pendant l'analyse de .gitignore sous OSX, Homebrew n'a pas encore fourni la mise à niveau).
  • Utilisez APT, un truc magique pour les distributions basées sur Ubuntu (je laisse les autres distributions comme exercice pour le lecteur).
  • Exécutez simplement le nouveau programme d'installation sous Windows (le port Windows est parfois ralenti, soyez donc patient si vous ne le trouvez pas immédiatement).

Pour lire des notes précédentes sur git 1.8.2, cliquez ici.

Quelles sont les nouveautés de cette livraison ?

Comme d'habitude, nous avons corrigé de nombreux bugs. Et, il me semble que cette nouvelle version est plus efficace que celle du cycle précédent. Sans plus attendre, je vais vous présenter certains des points qui ont attisé ma curiosité.

De la couleur et des fonctionnalités avancées

Optimisation de l'interface de ligne de commande avec quelques commandes sympas :

  • Pendant une session git rebase, le générateur de chaînes d'invite (dans contrib/completion/) affichera le nombre total de changements et le nombre de replays.

  • git branch -v -v donne maintenant une autre couleur à la branche avec laquelle l'intégration s'effectue (color.branch.upstream, bleu par défaut) :

npaolucci:~/dev/projects/stash] master ± git branch -v -v
  1.3           3a7ec9d [origin/1.3] Merge pull request #765 from STASH-2808-...
  gmail-renders 128fe79 [origin/gmail-renders] made pattern DOT_IN_WORD...
* master        66865b0 [origin/master] Automatic merge from 2.4 -> master
  • git log --format a intégré un token %C(auto) qui ordonne à Git d'utiliser des couleurs au moment de résoudre %d (décoration), %h (nom abrégé d'objet de commit), etc. pour des sorties sur un terminal.

  • git count-objects a intégré les options --human-readable et -H pour afficher divers nombres en KiO/MiO/GiO, selon l'échelle nécessaire :

[npaolucci:~/dev/projects/stash] master ± git count-objects -H
169 objects, 680.00 KiB

La commande help affiche la liste des guides

git help -g est une nouvelle option qui dresse une liste des guides disponibles, tout comme -a fournit des listes de commandes :

[npaolucci:~/dev/projects/stash] master ± git help -g
The common Git guides are:

  attributes   Defining attributes per path
  glossary     A Git glossary
  ignore       Specifies intentionally untracked files to ignore
  modules      Defining submodule properties
  revisions    Specifying revisions and ranges for Git
  tutorial     A tutorial introduction to Git (for version 1.5.1 or newer)
  workflows    An overview of recommended workflows with Git

'git help -a' and 'git help -g' lists available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.

Meilleure prise en charge du workflow « triangulaire »

git now supports a "triangular" work flow for situations where your default process is to always pull from one place and always push to a different one. To accomplish it you can now override configuration variable origin with a new remote.pushdefault and override branch.❊.remote with branch.❊.pushremote.

Amélioration des statuts pour les opérations revert, rebase et bisect

git status has been improved to report when you are in the middle of a revert session, a cherry-pick or a bisect session.

Annuler le suivi des submodules ! Enfin.

If you've read my earlier article on git submodule you have seen that relatively simple operations were not supported too well by the submodule command line interface. Well there is good news!

Vous pouvez à présent dire « Ce submodule ne m'intéresse plus » avec git submodule deinit.

Autres points intéressants

  • The new --follow-tags option tells git push to push relevant annotated tags when pushing branches out.

  • There was no good way to ask "I have a random string that came from outside world. I want to turn it into a 40-hex object name while making sure such an object exists". A new peeling suffix ^{object} can be used for that purpose, together with rev-parse --verify.

Conclusions

Voilà, nous en avons terminé pour le moment. Profitez des goodies et n'hésitez pas à me faire part des éléments utiles que j'aurais pu manquer dans la longue liste de mises à jour.

As usual follow me @durdn and the awesome @AtlDevtools team for more DVCS rocking.

Prêt à découvrir Git ?

Essayez ce tutoriel interactif.

Démarrez maintenant