Qu'est-ce que Git ?
Système de contrôle de versions, open-source, décentralisé, conçu pour être efficace et rapide.
Contrôle de versions
- conserver différentes versions dans le temps
- naviguer dans l'historique
- gérer les divergences et convergences de variantes
- travailler en équipe
outils connus ?
- cp-old
cp main.c main.c.old
- RCS, CVS, SVN
- GIT, Mercurial, Bazar, Darcs, GNU Arch…
- Perforce, IBM Rational, Visual SourceSafe…
Open-source
- License GPL v2
- Créé par Linus Torvalds pour le noyau Linux
- multi-plateformes
Décentralisé
- Tout est local, ou presque
- échanges entre dépôts, par filesystem ou réseau
- tout l'historique est disponible
- pereine et fiable (copies autonomes et complètes)
Rapide, efficace
- simple base de données clés/valeurs
- écrit en C, très portable
- adapté à toutes les tailles de projets
Historique
- métadonnées sur le commit
- liaison(s) avec le(s) parent(s)
- visualisation chonologique
commit, tree, blob
- un commit point sur un arbre
- chaque élément pointe sur un autre arbre
- ou sur un "blob" (contenu final)
les branches
- la botte secrète de Git
- faciles à créer, fusionner, détruire
- éphémères ou durables
- locales ou partagées
- la base d'un workflow d'équipe
3 zones
- working copy : ce que voit votre éditeur
- staging area : préparer des commits
- repository : la base de données interne
Utilisation
- en ligne de commande
- dans un outil (graphique) dédié
- intégré aux éditeurs…
En pratique /etc/.git
Une bonne pratique Evolix.
Initialisation du dépôt
$ su
# cd /etc
# git init .
# git status
# git add .
# git commit -m "commit initial"
Premières modifications
# echo "127.0.0.1 foo" >> /etc/hosts
# git status
# git diff [HEAD]
# git commit --all --message "Ajout de foo dans /etc/hosts"
# git log
# git show
Aller plus loin
Le livre Pro Git est incontournable,
pour le débutant comme pour l'expert.
git-scm.com/book/fr/v2