Juin 2008 - Archives

08/06/2008 18:28:22

Optimiser son travail à l'aide d'un dépôt GIT

Vous possédez plusieurs ordinateurs pour travailler ? Vous avez parfois celui de votre lieu de travail, l'ordinateur portable, ou encore le fixe ? Une solution est d'avoir une clé USB, c'est pratique on met tout son travail dessus et nous pouvons l'utiliser partout ... et si nous la perdions ? Tout notre travail serait fichu !

Pourquoi ne pas changer de méthode et utiliser un dépôt ?

Le dépôt coûte cher Blanko ! Et cela servirait à quoi ?

Non pas le dépôt physique (comme le dépôt de voiture, ni le dépôt à la banque), mais le dépôt de fichiers sur un serveur ou n'importe lequel de vos ordinateurs ! Et pour cela je vous propose celui que j'utilise (forcément ! :P)

Présentation de GIT

Pour une brève présentation, je dirais simplement que GIT est un système permettant de gérer et de versionner des projets, des fichiers dans un même projet, de permettre la centralisation dudit projet tout en proposant de travailler en local puis d'envoyer sur ce que nous appelons un dépôt, et finalement de faire cela correctement, rapidement, et de façon très intéressante.

Le fonctionnement est simple :

  • Mise en place du dépôt sur un serveur GNU / Linux (j'avoue ne pas savoir si un serveur Windows le ferait ...)
  • Récupération en local sur un ordinateur quelconque
  • Modification des fichiers récupérés ou alors ajout de fichiers supplémentaire
  • Envoi des modifications

Cela ne fait pas plus, dans le sens où ce sont ces points principaux qui importent. Le reste n'est qu'options supplémentaires, tels que l'utilisation de branches, ou de balises (tags).

Mon installation

Sur le serveur Ubuntu dont j'ai hérité l'année passée (j'aurai dû utiliser Debian :'( ) j'ai crée un nouveau dossier, par exemple dans /srv/, ce qui donnait un /srv/depots. C'est dans ce répertoire qu'on va ajouter un dépôt git. Donc nous procédons ainsi :

mkdir /srv/depots
cd /srv/depots
git --bare init --shared=group

Ceci aura pour effet de créer un dépôt GIT vide et que ce sont les permissions appliquées au groupe d'utilisateurs qui serviront pour les droits d'accès.

De là nous avons un dépôt GIT fonctionnel, pensez cependant à avoir SSH sur la machine et RSYNC.

Utilisation

Notre dépôt GIT créé, tentons d'y accéder ! :D

Rien de plus simple, quand on connait les commandes, il suffit de faire :

mkdir ~/nouveauProjet && cd nouveauProjet
git clone ssh://olivier@serveur/srv/depots

NB : Remplacez SERVEUR par l'adresse IP (ou le nom de domaine) de votre serveur. Vous devez absolument avoir le démon sshd configuré ainsi qu'un accès à la machine par le biais d'un compte utilisateur muni d'un mot de passe ou mieux encore d'une clé RSA publique.

Le dépôt sera téléchargé dans votre dossier "nouveauProjet" (vous pouvez le nommer autrement).

Pour ajouter des fichiers et dossiers, procédez comme d'habitude. Une fois vos modifications prêtes et considérées comme suffisamment correctes pour en faire bénéficier tout le monde, faites :

git status

Après quoi lisez les fichiers et dossiez modifiés, pour ajouter la liste complète des dossiers que vous avez sous les yeux, faites :

git add *

Sinon faire les fichiers l'un après l'autre en faisant :

git add fichier1 fichier2 fichier3 etc

De là, faites :

git commit

Pour prendre en compte vos ajouts. Un texte apparaît en haut duquel je vous suggère de mettre une description concise et claire de vos modifications.

Sauvez le fichier (exemple sous VIM : Echap, :x). Les modifications sont validés, mais ne sont pas encore envoyées ! Pour cela :

git push

devrait envoyer l'ensemble des modifications sur le serveur.

Conclusion

Actuellement utilisé pour mon rapport de stage, des documentations diverses, et mon projet de stage, je trouve agréable de pouvoir travailler de n'importe où dans le monde, simplement en ayant eu une connexion rapide à un moment donné, avoir récupéré les dernières modification d'un projet ou de fichiers, puis de bosser dans mon coin avant d'en faire partager le reste du monde, ou plus globalement à mon dépôt.

C'est une chose à tester, il faut se prendre le temps jusqu'à ce que cela fonctionne, je vous assure le jeu en vaut la chandelle !

Liens

Mise à jour

Après quelques tentatives de réutilisation de mon explication, il s'avère que plusieurs autres possibilités pour faire un dépôt GIT sont meilleures.

Voici un aperçu rapide des commandes utilisées pour créer un nouveau dépôt GIT:

mkdir monProjet
cd monProjet
touch nouveauFichier
git init
git add .
git commit -m "Initialisation du message"

Puis on va dans un dossier prévu pour les dépôts GIT, ou tout autre endroit que nous voulons utiliser pour cela et nous continuons :

cd /srv/depots/
git clone --bare /home/olivier/monProjet

Notre dépôt git est fonctionnel. Pour les permissions et d'autres explications, je vous renvoie à la page GIT sur le Quicky Blanko.