Versionnez les tous !

J’adore git, à un tel point que j’en suis venu à versionner tous les projets sur lesquels je travaille. On pourrait croire que ce comportement est un peu abusif mais il n’en est rien. Créer un repo git, c’est une ligne. Faire un commit de temps à autre, ça ne prend que quelques secondes. Et après quelques heures de cafouillage, on est bien content de pouvoir faire marche arrière.

Gitolite

Mais je ne m’arrête pas là, pour tous les projets que je versionne, je crée un repo git distant (remote) afin de m’assurer contre tout incident (disque dur en rade, rm -R trop vite tapé, ..). Ou encore plus simplement pour pouvoir coopérer avec des collaborateurs sur un projet. Toutes les raisons sont bonnes pour versionner ses œuvres ! Ainsi, ce blog, par exemple, est versionné avec git.

Comment s’y prendre ? Ce n’est pas bien compliqué, il suffit d’installer gitolite sur un serveur. L’installation et la création d’un nouveau repo est assez aisée (voir README.txt). Remarquez que vous administrez votre serveur gitolite grâce à un repo git.

Ajouter un remote

Voilà ! Vous avez désormais un gitolite qui tourne sur votre serveur. Vous pouvez créer un repo “foo” grâce à gitolite. Imaginez que vous voulez versionner maintenant votre projet “/home/tycale/project/foo”.

1
2
3
4
5
6
7
$ cd /home/tycale/project/foo
$ git init  # initialisation 
$ git add * # Ajout de tous les fichiers du projet
$ git commit -m 'Initial commit' # Le premier commit
$ git remote add origin gitolite@YourServer.com:foo.git # On rajoute un remote
$ git branch --set-upstream master origin/master # On le définit comme par défaut
$ git push # On envoie le tout !

Notez que git add * n’est pas vraiment une bonne idée. Typiquement, il y a des fichiers binaires que vous ne souhaitez pas versionner. Si vous avez versionné un de ces fichiers, pas de panique !git rm —cached file permet de supprimer le suivi de “file” sans pour autant le supprimer de votre disque dur. Une bonne pratique est de créer un fichier “.gitignore” à la racine de votre repo et d’y indiquer les répertoires, types de fichiers à ne pas versionner. Par exemple, si vous travaillez sur un projet en python, le .gitignore suivant permet d’éviter de versionner les binaires que python génère. Remarquez que c’est une expression glob. Vous pouvez en tapez une par ligne.

.gitignore
1
2
*.py[cod]
bin/

Vous pouvez bien entendu versionner ce fichier .gitignore.

Cloner

Pour cloner ce projet ailleurs, git clone gitolite@YourServer.com:foo.git. Notez qu’en ce faisant, git nomme automatiquement un dépôt distant (remote) “origin” et l’associe, pratique ! N’oubliez pas d’ajouter la clé publique de l’ordinateur en question auparavant dans gitolite.

J’espère vous avoir convaincu de versionner un maximum de vos projets et d’utiliser un remote pour ne jamais perdre la main sur ceux-ci !

Comments