Embauchez-moi

Je suis freelance ! Besoin d'un professionnel du développement web ? Pourquoi ne pas me passer un coup de fil ?

Plus d'infos sur… http://thibault.jouannic.fr

mots-cles : Ingénieur web freelance Symfony eZ Publish Solr

découvrir Git

Git est un outil de gestion de version, à l’instar de CVS ou Subversion. Avec cette différence fondamentale qu’il fonctionne en mode décentralisé. C’est à dire que vous n’avez pas besoin de serveur distant pour utiliser git : les dépôts sont sur votre machine locale.

il a été développé à l’origine par Linus Torvalds, et il est utilisé pour gérer les sources du noyau linux.

Vous aimiez CVS ? Vous adoriez Subversion ? Git va vous transcender.

Utilité

Le mode décentralisé, s’il est déroutant pour les habitués des classiques CVS / Subversion, présente quelques avantages trés… euh… avantageux :|

  • Il est utilisable extrémement rapidement. En 3 secondes, on a crée un dépot. Quand je pense qu’il m’a fallu une demi-journée pour installer mon premier serveur subversion…
  • Le dépôt n’est pas dépendant du réseau. C’est plus rapide, et vous pouvez coder dans le train.
  • Il est possible de créer autant de dépôts que l’on veut sur une même machine

Ainsi, chacun peut disposer de la puissance d’un outil de gestion de version, sans avoir à se perdre dans l’installation complexe d’un serveur.

Git est particulièrement utile quand :

  • On aime bien commiter souvent, mais qu’on ne peut pas parce qu’il ne faut pas «  pourrir  » le CVS / SVN
  • On n’a pas accès au CVS / SVN, pour des raisons plus ou moins ésotériques

Installation

Git s’installe facilement. Exemple avec Ubuntu :

sudo apt-get install git

Utilisation (trés) basique

Les fonctionalités de base sont simples à utiliser.

Pour initialiser un dépôt, il suffit de se placer dans le répertoire des sources, et :

git init
git add .
git commit -a

Ces commandes initialisent un nouveau dépot, indiquent à git d’y placer le répertoire courant, et de lancer un commit.

Supposons que j’ai modifié un fichier toto.txt à la racine de mon répertoire. Je vais donc commiter :

git add toto.txt
git commit

La commande commit ne prend pas en compte automatiquement les fichiers modifiés. Il faut les spécifier automatiquement avec la commande

git add <fichier>

Ça peut paraître contraignant, mais c’est en fait trés pratique à l’usage (si si, vous verrez).

Pour obtenir un statut du dépot (fichiers modifiés, etc.), utiliser la commande :

git status

Pour voir l’historique des commits sur la branche en cours :

git log

Utilisation (un peu) avancée

Pour voir la liste des différences depuis le dernier commit :

git diff

Pour générer la liste des fichiers modifiés depuis le premier commit :

(Note : est l’identifiant du premier commit, de la forme e89345b2e…, qu’on récupère tout en bas du log)

git log
git diff --name-only <commit>

Pour voir une ancienne version spécifique d’un fichier :

git show <commit>:<chemin/vers/le/fichier>

Annuler le dernier commit (à manier avec précaution, irréversible, et un peu brutal) :

git reset --hard HEAD^

Parfois, on veut marquer un état précis de l’arbre du développement, pour créer, par exemple, une version stable. C’est trés facile avec git :

git tag <nom du tag>

Pour voir tous les tags existants :

git tag -l

Git peut évidemment gérer plusieurs branches de développement. Pour créer une nouvelle branche à partir de la branche courante :

git checkout -b <nouvelle_branche> HEAD

Pour lister les branches existantes :

git branch

Pour passer d’une branche à l’autre : (Note : Il est possible de commiter indépendamment sur différentes branches (c’est même le but))

git checkout <nom_de_la_branche>

Ces quelques commandes vous permettront de démarrer en douceur. Il est évident qu’il ne s’agit que d’une infime partie des possibilités de l’outil. Nous en reparlerons.


One Trackback

  1. [...] sur wikipedia Découvrir Git Une comparaison de Git vs SVN Une autre manière d’utiliser Git Utiliser Git avec Github Un [...]