Cette page est une rapide introduction à git, et son utilisation régulière via Bitbucket.
Cet article contient de très rapides explications sur la prise en main du très efficace et puissant logiciel git, son installation, ainsi que l'utilisation de Bitbucket.
Des liens sont donnés vers d'autres tutoriels et d'autres explications.
J'en profite aussi pour joindre et publier mes fichiers de configuration pour git, des conseils, des alias pour améliorer git (via le fichier ~/.bash_aliases pour l'interprète de ligne de commande GNU/Bash).
Note
Licence ?
Cette page, et tous les fichiers liés, sont distribués librement, sous les termes de la licence GPLv3 ! (comme tout ce que je publie ou distribue).
Le site officiel de git est git-scm.com.
« Git est un logiciel de gestion de versions décentralisé. C'est un logiciel libre créé par Linus Torvalds, auteur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2. »
« Git est un conçu pour être performant en vitesse et assurer l'intégrité des données stockées, envoyées ou reçues. Entièrement libre et gratuit depuis 2005, il est rapidement devenu le système de gestion de versions le plus populaire pour le développement logiciel. »
« Un logiciel de gestion de versions est un logiciel qui permet de stocker un ensemble de fichiers en conservant la chronologie de toutes les modifications qui ont été effectuées dessus. »
« git permet donc notamment de retrouver les différentes versions d'un lot de fichiers connexes. Il permet aussi un contrôle efficace et sécurisé de certains fichiers (ou même de projets entiers), ainsi qu'un excellent suivi des modifications effectuées sur chaque fichiers. »
Inutile de dire donc que je m'en sers constamment, principalement sous Linux ((X)Ubuntu™ 15.10), et de temps en temps sur Windows™.
Oui :
Un peu en vrac, mais quand même dans l'ordre du plus utile au plus flou :
Deux documents en PDF à télécharger pour ne pas paniquer quand on est paumé ou qu'on débute :
D'autres ressources (moins utiles, mais peuvent aider) :
Note
Et comment ça marche, en vrai, sous le capot des jolis sites web et de l'utilisation en lignes de commande ? C'est compliqué (théoriquement) ? :red:`Oui.`
État: | Maintenu activement. (septembre 2015) |
---|
Pour ces deux fichiers de configurations, (sur Linux), un fichier .gitconfig et .gitignore global peut se trouver dans votre dossier HOME (~/, ou /home/pseudo), et un fichier particulier à chaque dépôt peut aussi être créé.
Voir mon bash_aliases (aussi sur Bitbucket.org/lbesson/bin). Je définis les alias Bash suivants, qui permettent de voir les fichiers modifiés, supprimés ou ajoutés uniquement :
Ceux là sont de bons raccourcis, qui par défaut lance la compression locale du dépôt juste après chaque opération (en moyenne ça fait gagner du temps) :
Et enfin, j'ai défini un alias pratique qui permet de synchroniser le projet courant avec le dépôt mère, et son sous-dossier sur mon site.
Par exemple ce dépôt se trouve ici sur ce site (publis/ansi-colors). Cet autre dépôt se trouve ici sur ce site (publis/Bomberman). Ce troisième dépôt se trouve ici sur ce site (python-demos).
Note
Détails à propos des alias Bash ?
Plus d'informations sont disponibles dans ce livre sur le programmation Bash, dans cette documentation Linux ou celle là, ou bien cette page Wikipédia qui parle d'alias pour les langages de scripts en général (en anglais).
Note
Une interface graphique pour git ?
Utiliser une quelconque interface graphique à git peut faire gagner un temps fou. Pour coder, moi j'aime bien Sublime Text 3 (ST3). Peu importe votre éditeur de texte ou EDI, il devrait être possible de le munir de ce genre de fonctionnalités pour facilement utiliser git sans toujours passer par des commandes en console.
Par exemple, Atlassian propose SourceTree, pour Windows™ et Mac™ OS X. Et GitHub propose leur propre application pour Mac™ OS X ou Windows™.
Les greffons suivants permettent une utilisation fluide et facile de git avec Sublime Text 3 :
Comme d'autres services d'hébergement, Bitbucket est gratuit, flexible, puissant, opérationnel 24h/24, 7j/7, et permet de publier son code facilement sur Internet.
Note
GitHub propose en gros les mêmes (super) fonctionnalités, gratuitement aussi.
Bitbucket propose en plus des dépôts privés, en nombre illimités. Chaque dépôt est limité à 2GB (il faut vraiment le vouloir pour dépasser!). S'inscrire est rapide, il suffit d'aller sur cette page https://Bitbucket.org/ ! (Notez que Bitbucket peut aussi s'utiliser avec un compte Google, Facebook, GitHub ou même avec OpenID.)
Un fois votre profil créé, il ressemblera au mien, mais en plus vide : Bitbucket.org/lbesson (voir celui là pour un autre exemple Bitbucket.org/jilljenn).
Les dépôts publics sont visibles par tous : Bitbucket.org/lbesson/profile/repositories.
Par exemple, voici plusieurs de mes dépôts :
- Bitbucket.org/lbesson/web-sphinx stocke les sources de ce site, voir par exemple la source de cette page, écrite en reStructuredText (.rst) (→ lien direct sur cette ligne),
- Bitbucket.org/lbesson/bin héberge des douzaines de scripts, surtout en Bash et quelques uns en Python,
- Bitbucket.org/lbesson/web-sphinx-scripts stocke des versions locales de tous les scripts Javascript utilisés par ce site,
- Bitbucket.org/lbesson/cv stocke les sources \(\LaTeX{}\) de mes CV en français et en anglais : cv.fr.tex ou cv.en.tex,
- Bitbucket.org/lbesson/munstrap un tout petit dépôt proposant une traduction en français du thème Munstap, un thème adaptatif et moderne pour Munin.
Plus d'explications sont disponibles ici en.WikiPedia.org/wiki/Bitbucket (en anglais).
Si votre nom d'utilisateur Bitbucket est TRUC, il est possible de créer un dépôt appelé "TRUC.bitbucket.org", et ensuite tous les documents que tu y seront stockés seront automatiquement disponibles sur le site http://TRUC.bitbucket.org !
Plus de détails sont donnés sur cette page de doc par Atlassian (en anglais), et l'exemple officiel (tutorials.bitbucket.org) est en ligne sur https://tutorials.bitbucket.org)
(Ce service est maleheureusement un peu moins poussé que celui de GitHub (GitHub.io, voir la doc ici), mais marche bien quand même.)
Note
Voir par exemple cette petite page lbesson.Bitbucket.org/README.html dont la source est hébergée ici Bitbucket.org/lbesson/lbesson.bitbucket.org/src/master/README.html.
Je me sers de lbesson.Bitbucket.org principalement pour :
Et même si le certificat n'est pas valide, il est parfaitement possible d'utiliser cette fonctionnalité avec le HTTPS activé : https://lbesson.Bitbucket.org/README.html (si votre navigateur râle et affiche une erreur c'est parfaitement normal !). Si vous utilisez un navigateur assez récent, il peut râler et vous expliquer pourquoi (vous verrez alors que la seule raison est que le certificat SSL de https://bitbucket.org n'a été signé que pour certains sous domains du site bitbucket.org, pas tous). Mais le trafic sera bien crypté et sécurisé par le certificat SSL, aucun problème :)
Depuis un peu plus d'un an, il est possible de changer l'interface du site en français (et plein d'autres langues), dans vos paramètres personnels.
Note
Traduction en français ?
En mars et avril 2013, j'ai initié et un peu dirigé la traduction du site et du service de l'anglais vers le français. J'ai traduit presque 90% du contenu initial, laissé quelques boulettes, mais on a fait du bon boulot. Grâce à quelques autres motivés et moi-même, le français était le première langue traduite à 100% ! (mi mars 2013) Je n'ai plus ni le temps ni l'envie de m'en occuper, mais le projet continue d'être tenu à jour par d'autres.
De même que des fans de GitHub proposent ghbtns.com/ ou buttons.GitHub.io/, un fan de Bitbucket a conçu bb-btns.bitbucket.org/.
Voici quelques exemples pour mon dépôt web-sphinx :
Les mêmes, mais hébergés sur lbesson.bitbucket.org/bbbtns/ (pour mon dépôt bin) :
Les mêmes, mais hébergés sur ce site (./bbbtns/) (pour le dépôt lbesson.Bitbucket.org) :
Comme pour tout logiciel aussi puissant et technique, git demande un certain temps d'adaptation. Soyez persévérant, ça en vaut la peine.
« Je vous souhaite une bonne programmation, et bonne change pour vos projets !
Merci à Vincent Cohen-Addad de m'avoir motivé à m'initier à git, en octobre 2012 pour le projet de programmation réseau de mon Master d'Informatique Fondamentale (le MPRI, cours #1-21) sur lequel nous avions travaillé ensemble.