Utilisation de Git et GitLab

From devSpot-wikis
Revision as of 12:44, 30 November 2015 by Gabarrot (Talk | contribs)

Jump to: navigation, search

Contents

Références

Mémo d'utilisation de Git

Travailler avec Git en local

  • Initialisation d'un dépôt :

dans le répertoire existant du logiciel taper :

 git init
  • Ajouter des fichiers pour suivre leur version :

taper

 git add nom-du-fichier 

puis

 git commit -m 'version initiale du projet'

git add permet d'ajouter (indexer) les fichiers au projets (possible d'ajouter tout avec git add *).
git commit permet d'enregistrer (valider) les modifications (l'option –amend permet d'annuler le commit).
ATTENTION : toujours inspecter les modifications pour savoir si tout est bien indexé en tapant la commande git status.

  • Se définir un patron de travail :

renseigner un fichier .gitignore pour éviter d'indexer ou de valider ce qu'on ne veut pas, exemple :

 # un commentaire, cette ligne est ignorée
 # pas de fichier .a
 *.a
 # mais suivre lib.a malgré la règle précédente
 !lib.a
 # ignorer uniquement le fichier TODO à la racine du projet
 /TODO
 # ignorer tous les fichiers dans le répertoire build
 build/
 # ignorer doc/notes.txt, mais pas doc/server/arch.txt
 doc/*.txt
 # ignorer tous les fichiers .txt sous le répertoire doc/
 doc/**/*.txt

Autres exemples sur [1]. Penser aux fichiers *~ et *.lock.

  • Supprimer ou déplacer un fichier :
 git rm nom-du-fichier
 git mv nom-du-fichier

Les fichiers indexés qui feront parties de la prochaine validation :

 git diff --staged
  • Obtenir des infos sur la version actuelle du projet :
 git log 

(git log -p -2 permet de voir les différences avec les 2 commits précédents)

  • Lister et créer des étiquettes pour les versions stables :
 git tag pour lister les étiquettes.
 git tag -a v1.4.0 -m 'Version 1.4.0' pour ajouter une étiquette au dernier commit.

Rappel – règles pour les étiquettes : vA.B.C avec A=version majeure, B=version mineure, C=correctif On commence la numérotation à 0. On réserve A=0 pour le protoype, A=1 est la première version stable.

  • Manipuler des branches:
 git branch nom-de-la-branche     pour créer une nouvelle branche
 git checkout nom-de-la-branche   pour basculer sur cette nouvelle branche
 git branch -b nom-de-la-branche  pour faire les deux d'un coup
 git branch -d nom-de-la-branche  pour la supprimer

La bonne pratique pour travailler avec les branches

Git Flow!

Travailler avec un dépôt distant et GitLab

  • Création d'un dépôt :

Se rendre sur l'interface Gitlab sur le serveur devspot et créer le dépôt à partir de l'interface graphique.

  • Récupérer un dépôt distant en local pour la première fois (clone) :

(exemple avec le projet MiscBox)

 git clone http@osur.univ-reunion.fr/outils/devspot/git:promise/miscbox.git MiscBox

Attention : ne pas oublier que le nom du dépôt distant se termine par .git. On peut récupérer l'URL exacte dans la page « Activity » du projet.

  • Enregistrer plusieurs dépôts:

git remote add nom_depot adresse_depot

Par exemple si on veut ajouter le dépôts renater du projet en SSH: git remote add sourcesup git+ssh://git@git.renater.fr:2222/projet.git et pour pousser la branche develop on n'a plus qu'à faire: git push sourcesup develop

  • Récupération des branches distantes:

Avec la commande précédente on vient de récupérer la branche principale du projet (master).
Pour voir l'ensemble des branches en local:

 git branch

... ce qui dans ce cas va donner uniquement

 *master

Pour récupérer la branche distante gestion_attributs:

 git checkout -b gestion_attributs origin/gestion_attributs

On va récupérer et se positionner automatiquement sur cette nouvelle branche:

 *gestion_attributs
  master
  • Pousser la branche master locale vers le serveur depuis lequel vous avez cloné le dépôt (origin) :
 git push origin master

ou sinon plus générique

 git push [nom-distant] [nom-de-branche-locale] 

Attention : si quelqu'un a poussé entre temps on aura un message de rejet, on doit d'abord tirer les modifications de la personne précédente, les fusionner avec les votres et pousser.

  • Récupérer les modifications de la branche develop sur le serveur :
 git pull origin develop

ou sinon plus générique

 git pull [nom-distant] [nom-de-branche-locale] 
  • Attention à la limitation en taille par défaut dans Git quand vous poussez vers le dépôt distant:

Si vous avez l'erreur suivante:

 fatal: The remote end hung up unexpectedly

c'est que la configuration Git de la taille du buffer d'envoi n'est pas adaptée à votre paquet, pour être tranquille on passe à 500MB:

 git config http.postBuffer 524288000

Pour les utilisateurs Windows

  • Ajouter sa clé SSH à GitLab:

Utiliser l'outil puttyGen pour générer une paire de clés privées/publiques. Si vous avez déjà une paire de clés, l'ouvrir via puttyGen et récupérer la clé publique (car ATTENTION : copié/collé depuis le bloc-note ne fonctionne pas).

Git cle ssh.png

  • Installation de TortoiseGit:

Ajoute les commandes GIT, de manière graphique, dans l'environnement de l'explorer de Windows. Suivre les indications d'installation du programme.

  • Installation de "Git for windows":

Lors de l'installation, 2 options peuvent être utiles. La première (ci-dessous) rend les commandes UNIX et Git utilisables depuis ms-dos.

Git for windows install.png

La deuxième option utile est de convertir les caractères « retour à la ligne » de windows en système UNIX :

Git for windows install2.png

  • Utilisation de TortoiseGit:
    • Cloner un repository:

Dans un explorer:

Git turtoise1.png

Récupérer l'URL du projet à cloner depuis le serveur web GIT :

Git turtoise2.png

    • Ajouter/commit des fichiers:

Lors du premier commit, ouvrir une commande ms-dos. Se placer dans le répertoire contenant le dossir « .git » correspondant au projet. Taper la commande suivante : git push -u origin master Exemple :

 D:\git\e-obs>git push -u origin master
 Username for 'http://10.82.61.11': ****
 Password for 'http://****@10.82.61.11':
 Counting objects: 8, done.
 Delta compression using up to 8 threads.
 Compressing objects: 100% (6/6), done.
 Writing objects: 100% (8/8), 54.60 KiB | 0 bytes/s, done.
 Total 8 (delta 0), reused 0 (delta 0)
 To http://10.82.61.11/promise/e-obs.git
 * [new branch]      master -> master
 Branch master set up to track remote branch master from origin.

Dans l'explorateur windows, clique-droit sur le dossier contenant les fichiers à ajouter/commit :

Git turtoise3.png

Personal tools
Namespaces

Variants
Actions
Navigation
Campagnes de l'OPAR
Projets
Developpements
Support informatique
Tools