----- isHidden: false menupriority: 3 kind: article created_at: 2009-11-12T11:39:54+02:00 title: Git pour les nuls author_name: Yann Esposito author_uri: yannesposito.com subtitle: Utiliser git avec quelques commandes simples ----- # Et c'est parti ! Voici une parmi de nombreuses autres façon d'utiliser [Git][git]. Cette méthode est nécessaire et suffisante pour travailler seul ou en collaboration sur un projet commun. Cependant, on peut faire beaucoup mieux avec [Git][git] que ce *workflow* (en langage anglo-saxon). ## Utilisation basique La façon immédiate de travailler avec [Git][git] : + récupérer les modifications des autres `git pull` + voir les détails de ces modifications `git log` + Plusieurs fois: + *Faire une modification atomique* + verifier le details de ses modifications `git status` et `git diff` + indiquer si nécessaire que de nouveaux fichiers doivent être *versionnés* `git add [file]` + enregistrer ses modifications
`git commit -a -m "message"` + envoyer ses modifications aux autres `git push` (refaire un `git pull` si le push renvoie une erreur). Voilà, avec ces quelques commandes vous pouvez utiliser [Git][git] sur un projet avec d'autres personnes. Même si c'est suffisant, il faut quand même connaître une chose avant de se lancer ; la gestion des *conflits*. ### Gestion des conflits Les conflits peuvent survenir lorsque vous modifiez les même lignes de codes sur le même fichier d'une autre branche que vous *mergez*. Ça peut sembler un peu intimidant, mais avec [Git][git] ce genre de chose est très facile a régler. #### exemple Vous partez du fichier suivant :
Zoot
et vous modifiez une ligne
Zoot the pure
sauf que pendant ce temps, un autre utilisateur a aussi modifié cette ligne et a fait un `push` de sa modification.
Zoot, just Zoot
Maintenant quand vous lancez la commande
$ git pull remote: Counting objects: 5, done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From /home/e640846/tmp/conflictTest d3ea395..2dc7ffb master -> origin/master Auto-merging foo CONFLICT (content): Merge conflict in foo Automatic merge failed; fix conflicts and then commit the result.
Notre fichier `foo` contient alors :
<<<<<<< HEAD:foo
Zoot the pure
=======
Zoot, just Zoot
>>>>>>> 2dc7ffb0f186a407a1814d1a62684342cd54e7d6:foo
#### Résolution du conflit Régler le conflit, il suffit d'éditer le fichier, par exemple en écrivant :
Zoot the not so pure
et de 'commiter' tout simplement :
git commit -a -m "conflict resolved"
Maintenant vous êtes fin prêt pour utiliser [Git][git]. Sauf que [Git][git], c'est un outil qui permet de faire beaucoup plus que juste ça. Alors nous allons maintenant voir des façon d'utiliser git qui étaient avant lui interdite d'utilisation pour les autres CVS. [git]: http://git-scm.org "Git"