Comment travailler avec Git en local sur son poste de travail ?


Site officiel : http://git-scm.com/

Installer Git sur votre poste de travail

  • Sous linux :
    • RHEL, Fedora, Centos :
      yum install git-core
    • Debian, Ubuntu :
      apt-get install git-core
  • Sous Windows :
    • pour utiliser Git sous Windows en ligne de commande, il faut installer msysgit : http://code.google.com/p/msysgit/downloads
      Cela installe msys (un système d’émulation des commandes Unix sous Windows) et Git simultanément. Quand Git est installé sur votre système, il ne reste qu'à créer un répertoire de travail qui stockera l'ensemble de vos dépôts Git.
    • vous pouvez aussi utiliser github desktop en suivant ce tutoriel

Configurer Git sur votre poste de travail

  • Activation des couleurs dans Git pour améliorer la lisibilité des messages dans la console.
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

Travailler sur un dépôt local Git


Créer un dossier pour héberger votre projet git s'il n'existe pas et s'y positionner.

Créer un nouveau dépôt ou cloner un dépôt existant

  1. Créer un nouveau dépôt : initialiser le dépôt
    git init
  2. Cloner un dépôt existant de SourceSup :
    • Pour un dépôt public anonyme:
      git clone https://git.renater.fr/anonscm/git/nom_projet/nom_projet.git
    • Pour un dépôt privé avec autorisation : (attention, pour cloner ce type de repository, il faut avoir une autorisation minimum en lecture sur le dépôt et avoir déposé sa clé publique sur le serveur SourceSup dans l'onglet “Gestion de code Source” associé au projet SourceSup) .
      git clone ssh://<nom utilisateur unix>@git.renater.fr:2222/scmrepos/git/nom_projet/nom_projet.git


Cela va créer un dossier et y télécharger tout le code source du projet ainsi que l'historique de chacune des modifications.

Pour ignorer des fichiers

  • Pour ignorer un fichier dans Git, il faut créer un fichier “.gitignore” à la racine du dossier projet et indiquer les nom des fichiers à ignorer.
    Les fichiers contenus dans “.gitignore” ne seront pas pris en compte dans les commits.

Pour effectuer des commits

  • Pour lister tous les fichiers modifiés :
    git status
  • Pour voir ce qui a effectivement changé depuis le dernier commit :
    git diff
  • Pour effectuer les modifications de code et effectuer les commits :
    • pour ajouter l'ensemble des fichiers à la liste des fichiers à commiter :
      git add .
    • sinon :
      git add nom_fichier
    • commiter :
      git commit -m "commentaire associé au commit" git@git.cru.fr:nom_projet.git nom_branche (par défaut master représentant la branche principale)

Pour consulter les historiques des commits

git log
git log - p (pour avoir plus détails)

Pour corriger ou annuler un "commit"

  • Pour modifier le dernier message du commit :
    git commit --amend
  • Pour annuler tous les changements du dernier commit :
    git reset --hard HEAD^
  • Pour restaurer un fichier dans l'état du dernier commit :
    git checkout nomfichier

Travailler avec des branches

Par défaut, une seule branche présente ; la branche principale “master”.

  • Lister les branches locales :
    git branch

    La branche sur laquelle on est positionné est indiquée par une étoile devant.

  • Créer une branche :
    git branch nom_nouvelle_branche
  • Changer de branche locale et se positionner sur nom_branche :
    git checkout nom_branche
  • Fusionner des branches :
    Se positionner sur la branche dans laquelle va avoir lieu la fusion, dans l'exemple ci-dessous “master” et fusionner le contenu avec la branche souhaitée :
git checkout master
git merge nom_branche_a_fusionner
  • Supprimer une branche et tous ses changements même non fusionnés :
    git branch -D nom_branche_a_supprimer

Etiquetter une version

  • Pour ajouter un tag sur un commit :
    git tag nom_tag id_commit
  • Pour supprimer un tag :
    git tag -d nom_tag_a_supprimer

Supprimer un fichier

  • Pour supprimer un fichier d'un dépôt (sans le supprimer complètement de l'historique Git), utilisez la commande git rm (ensuite il faut commiter cette suppression puis la pousser sur le serveur Git) :
git rm monfichier.ext