Tutorial git avec fusionforge
Last edited dim 25 jan 2009 19:50:28 CET
1) Installation de git sur Linux/debian (etch)
Il faut installer git (via le compte root):
# apt-get install git git-doc gitk
2) Configuration de git
Entrez votre nom et adresse email dans git:
$ git config --global user.name "Al Jeux"
$ git config --global user.email "aljeux@free.fr"
3) Fork du dépot via github
Il faut aller sur le projet fusionforge sur github et cliquer sur le lien "fork".
Il faut ensuite récuperer votre dépot depuis github.com (en utilisant l'URL "Your clone URL" et non l'URL publique).
$ git clone git@github.com:yourlogin/fusionforge.git
Il est aussi interessant de garder un lien avec le dépot initial (celui d'aljeux), cela se fait avec les commandes:
$ cd fusionforge
$ git remote add upstream git://github.com/aljeux/fusionforge.git
$ git fetch upstream
4) Utilisation du dépot
Voir la liste des branches de developpements de gforge:
$ git branch -r
La branche principale (master) est un mirroir de la branche master (former trunk on Subversion) de fusionforge. C'est un point important, avec git, on ne travaille jamais directement sur une branche distante mais cela se fait par le biais d'une branche mirroir.
On peut donc, des à present, acceder au code de fusionforge, quelques informations sur git:
Les informations (metadatas) de git sont stockés à la racine du dépot dans un répertoire ".git".
git log <fichier> Voir les changements sur un fichier.
git blame <fichier> Voir les auteurs des changements.
git checkout <fichier> Revenir à la version d'origine du fichier.
git commit <fichier> Enregistre le changement.
git checkout <branche> Bascule sur la branche <branche>
Passons à quelques examples, maintenant:
Ex1: Faire une correction dans le code de fusionforge.
1) Editer le(s) fichier(s) à modifier avec vi/vim/emacs/eclipse/...
2) Vérifier les fichiers modifiés:
$ git status
=> donne uniquement la liste des fichiers modifiés.
3) Vérifier les changements.
$ git diff
=> donne un diff des changements.
4) Sauvegarder toutes mes modifications.
$ git commit -m 'commentaire expliquant la raison du changement' -a
5) Pousser cette modification dans le dépot sur github.
$ git push origin master
6) Si vous voulez soumettre cette modification pour inclusion dans la branche aljeux, il suffit alors de cliquer sur le lien "Pull request" depuis votre page sur github.
Ex2: Mettre à jour notre dépot git avec le dépot gforge.
La commande "git pull" permet de récupérer les changements depuis le dépot "upstream".
$ git pull upstream master
Ex3: Travailler sur une branche locale dédiée.
Création d'une branch mydev
$ git branch mydev
Passage dans la branche 'mydev'
$ git checkout mydev
Editions et changements.
$ vi ....
$ git commit -m '....'
Retour dans le branche master et merge des changements.
$ git checkout master
$ git merge mydev
Note: il est aussi possible de ne merger que certains commits, pour cela il faut utiliser la commande 'git cherry-pick'
Quelques astuces à connaitre.
- On peux très facilement passer d'une branche à une autre, cela se fait avec une seule commande (git checkout )
- On peux mettre de coté les changements en cours pour y revenir plus tard (git stash)
Les interfaces graphiques:
- git-gui
- giggle
- gitk
Quelques liens: