Git : utilisation

De wikiGite

Documentation

http://progit.org/

Utilisation

Cloner un dépôt remote sur un PC de développement :

git clone git@github.com:kogite/fabric ./fabric

Valider les modifications en local

git commit -a -m"The commit description text"

Pousser ces modification vers le dépôt remote

git push origin

Récupérer les sources à partir du remote :

git fetch origin

Dans ce cas git ne fait aucun merge, il faudra le faire manuellement ensuite. On peut donc plutôt utiliser :

git pull origin

qui réalise fetch + merge automatiquement. Si des fichiers locaux ont été modifiés (pour des tests par exemple) et que Git indique un problème de cohérence entre le local et le remote:

Entry xxx not update. Cannot merge

on peut réinitialiser les fichiers locaux par rapport à la version correspondante en remote avant de faire le "pull" :

git reset --hard HEAD
git pull origin

Créer une branche :

git branch nouveau-module

Passer "de branche en branche" :

git checkout nouveau-module # place sur la branche nouveau-module fraichement créée
git checkout master # ramène sur la branche master

Pour créer une branche et aller directement dessus en même temps :

git checkout -b nouveau-module

Fusionner une branche au master :

git checkout master
git merge nouveau-module

S'il y a des conflits (mêmes fichiers modifiés sur les deux branches), Git prévient et annule le merge. Il faut résoudre les conflits manuellement avant de retenter une fusion.

Supprimer une branche (inutile, ou qui a été fusionnée à master) :

git branch -d nouveau-module


GITHUB : EXEMPLE AVEC PROJET FABRIC

Pour information :

Connecter en "kogite", aller sur sur https://github.com/fabric/fabric, créer un fork (bouton fork en haut à droite).

Le fork est automatiquement ajouté au dépôt kogite.

clone local (sur le PC de développement) :

cd ~/Dev/Fabric
git clone git@github.com:kogite/fabric ./fabric

Ce clone-ci s'appelle par défaut "master", le dépôt à l'origine du clone s'appelle par défaut "origin".

Aller dans cd ~/Dev/Fabric/fabric, travailler sur le code !

Commits réguliers dans notre clone local (master):

  • si nouveau(x) fichiers :
git add FILE1 FILE2 ...
  • sinon :
git commit -a -m"The commit description text"

Une fois les modifications validées en local, on "push" vers le dépôt principal (origin):

git push origin

(commande complète au cas où : git push origin master)

Maintenant, il faut avertir le dépôt officiel de Fabric qu'on a des modifications à inclure. Ce dépôt ne nous appartient pas et on ne peut donc pas y écrire, c'est au développeur principal de prendre la décision d'inclure notre code.

Pour ça, on fait une requête ("pull request") sur https://github.com/kogite/fabric

Déclarer le dépôt "maître" (qui s'appelera "upstream", nom convenu) :

$ cd ~/Dev/Fabric/fabric
$ git remote add upstream git://github.com/fabric/fabric.git

A l'avenir, pour récupérer les dernières version du "maître" et fusionner :

$ cd ~/Dev/Fabric/fabric
$ git fetch upstream
$ git merge upstream/master

--> ce qui merge "upstream" avec le "master" local. Il faut donc synchroniser master (local) avec origin (dépôt kogite/fabric) pour que tout le monde soit au même niveau.

$ git push origin

Gestionnaire graphique de version

gitk, ou Gitg

Depot public

Installer git-daemon :

aptitude install git-daemon-run

lancer le daemon :

git daemon --base-path=/hgit daemon --base-path=/home/git/repositories/ --detach --syslog --export-all

Git sous windows

http://code.google.com/p/msysgit/downloads/list