Tutoriel Git    (merci à Vincent Lanore)

Pourquoi utiliser un logiciel de gestion de version ?

Parce qu’apprendre à utiliser un tel outil est un investissement très rentable, pour tout un tas de tâches.

Lequel ?

* Si vous savez déjà utiliser un truc moderne genre mercurial, c’est très bien ;

* sinon nous vous encourageons fortement à vous mettre à git ;

* ceux qui connaissent SVN ou CVS, c’est ok mais vous pouvez en profiter pour vous mettre à un truc plus moderne.

Où héberger son serveur ?

* On vous conseille le site d'aliens (cf. ci-dessous) ;

* ceux qui veulent peuvent aller sur github, gitorious, bitbucket...

Configurer git sur aliens

Tout se passe sur https://gitlab.aliens-lyon.fr/

Setup initial

Vous êtes un binôme, constitué de A et B.

* A se connecte via le CAS, puis fournit son adresse email et clique sur le lien dans l'email de confirmation.
Puis, A clique dans gitlab sur "+" (en haut à droite) et "New Project".

* Donnez un nom au projet (par exemple : projet2_monom_nombinome), laissez le projet en "public" puis validez.

* Normalement, le projet a été créé et amène sur une page listant des commandes ; ne pas exécuter ces commandes pour l'instant.

* Une bannière rouge (toujours le site d'aliens) invite normalement à créer une clef SSH ; cliquez sur le lien ; collez-y la clef publique correspondant à une clef privée sur votre machine puis validez le formulaire (voir ci-dessous pour un tuto sur la création de votre clef SSH).

* Une fois que la clef est ajoutée sur le site d'aliens, vous pouvez revenir sur la page listant les commandes à exécuter pour créer votre projet ("Projects -> Your Projects -> project-name").
Vous pouvez copier-coller directement le premier blocs de commandes dans un terminal en vous plaçant préalablement dans le dossier où vous voulez mettre votre projet.
Ensuite, vous pouvez copier-coller la première ligne du second bloc (git clone...), si vous souhaitez partir d'un projet vide. Cependant, on est souvent dans la situation correspondant au troisième bloc de commandes (Push an existing folder) : on démarre à partir d'un répertoire de travail qui existe déjà. C'est le cas en particulier si on part d'une archive de code fournie pour un rendu.

Ajouter son binôme

* (à faire par A, le créateur du projet) Sur la page du projet sur le site d'aliens, cliquez sur "Settings" puis "Members" puis ajoutez votre binôme, B, comme developer ou master.

* (à faire par B, le binôme) Ajoutez une nouvelle clef publique comme décrit plus haut -- ou plus bas -- pour votre machine.

* (à faire par B, le binôme) Récupérez l'adresse du dépôt git sur la page du projet (de la forme git@git.aliens-lyon.fr:monnom/monprojet.git) puis clonez le git grâce à la commande

git clone adressedudepot

* Pour ajouter de nouvelles machines (par exemple si vous voulez travailler depuis votre laptop et depuis une machine libre service) répétez les deux étapes ci-dessus (ajouter clef à votre profil sur aliens et cloner le git).

Tuto clef SSH

. Ouvrez un terminal.

. Regardez dans le répertoire .ssh (POINTssh) si vous avez un fichier id_rsa.pub : si oui, c’est que vous avez déjà une clef publique.

. Si non (ou si le répertoire .ssh n’existe carrément pas):

  tapez     “ssh-keygen”

  tapez “entrée” à chaque fois qu’il vous demande quelque chose (vous engendrez une clef comme il vous propose de le faire, vous ne donnez pas de phrase initiale pour engendrer votre clef ssh).

. Et voila, vous avez un répertoire .ssh, qui contient (entre autres) le fichier id_rsa.pub.

. Tapez “gedit id_rsa.pub” (une fois que vous êtes dans le répertoire .ssh) pour contempler votre clef rsa publique: cela vous permettra de la copier, pour aller coller dans git.

Utiliser git

Liens

Tuto en français très complet mais facile à lire :

http://openclassrooms.com/courses/gerez-vos-codes-source-avec-git

Cheat sheet en anglais bien fichue :

http://ndpsoftware.com/git-cheatsheet.html

La vie de tous les jours sur git

Lorsqu’on veut travailler sur le projet:

. On commence par faire

    git pull

pour etre à jour avec la version courante.

. On modifie les fichiers.

. On fait

   git commit -a

         ou alors git commit -am “petit message informatif: je suis A, j’ai modifie l’interface graphique, car je prefere le vert au bleu” régulièrement, pour “jeter de petits cailloux” au long de son travail.

. Si on a créé un nouveau fichier, toto.c, qu’on veut ajouter au projet, on tape

  git add toto.c

(même principe pour ajouter un nouveau répertoire).

. On fait

   git pull                 (au cas où il y a eu des modifications pendant qu’on travaillait)

   git push

pour se resynchroniser, et soumettre les modifications que l’on a faites.

Quelques commandes très utiles

   git status

permet de savoir où on en est (si des fichiers ont été modifiés depuis le dernier commit, si on a des commits non pushés…)

   git log

permet d’afficher la liste des commits ; très utile pour savoir ce qu’ont fait les autres après un pull.