Introduction

L’utilisation d’un gestionnaire de dépôt, tel que git devrait être systématique.
Vous devez prendre l’habitude d’utiliser un gestionnaire de dépôt pour tous vos projets, quelle que soit la taille.

Installation

Contexte

Cette section va se consacrer essentiellement sur l’utilisation de Github dans l’environnement Linux. A la fin du chapitre je donne quelques outils dans les autres environnements.

Article a consulter pour plus de détails.

Outil en ligne de commande

Installer Git sous Linux
 sudo apt-get install git-core

Outil en mode graphique

Pour un interface plus complète, je préconise d’utiliser SmartGit
Qui est gratuit pour une utilisation non commerciale

sudo apt-get install smartgit

Configuration Git

Maintenant que vous avez installé Git sur votre système, vous devez personnaliser votre environnement Git.
Vous ne devrez réaliser ces réglages qu’une seule fois ; ils persisteront lors des mises à jour.
Git contient un outil appelé « git config » pour vous permettre de voir et modifier les variables de configuration

git config --global user.name "John Doe" 
git config --global user.email johndoe@example.com

git config --list

Sinon
Editer votre fichier de configuration .gitconfig situé dans votre répertoire personnel : vim ~/.gitconfig


Afin de garder le mot de passe pour le push ajouter la dernière ligne avec « store »

[user]
email = your@email.com
user = gitUSER

[credential]
helper = store

Clone et Initialisation projet

Par aller au plus simple je conseille de créer le projet sur github, puis de le récupérer à travers un « Clone » sur votre machine

 git clone https://github.com/ckl67/Orpic.git 

Cela va créer un dossier « Orpic » et y télécharger tous les fichiers source du projet ainsi que l’historique de chacune de leurs modifications !

Méthode de Travail

Lorsqu’on travaille avec Git, on suit en général toujours les étapes suivantes

  1. modifier le code source
  2. tester votre programme pour vérifier si cela fonctionne ;
  3. faire un commit pour « enregistrer » les changements et les faire connaître à Git ;
  4. recommencer à partir de l’étape 1 pour une autre modification.

Quelques commandes

git diff
     Pou voir concrètement ce que vous avez changé 
git add nomfichier1 nomfichier2  
     pour ajouter les fichiers à la liste de ceux devant faire l’objet d’un commit
git status
     La commande git status vous indique les fichiers que vous avez modifiés récemment
git commit -a  
     pour « commiter » tous les fichiers qui étaient listés dans git status 

Un commit avec git est local, et n’est pas poussé vers github !
Cela a un avantage :
si vous vous rendez compte que vous avez fait une erreur dans votre dernier commit, vous avez la possibilité de l’annuler (ce qui n’est pas le cas avec SVN !).

Fichier à ignorer pour git

Le fichier .gitignore indique tous les fichiers qui doivent être ignorés.
On constatera ci-dessous que le répertoire d’environnement virtuel Python venv est, (et doit être) ignoré !

more .gitignore  
/venv/ 
*.swp 

Récupérer et Remonter les modification vers github

Quelques commandes

git pull 
     Commande qui permet de télécharger les nouveautés depuis le serveur

git status
git commmit -a 
     Fait un commit en local, mais réalise un status avant

git push
     Une fois que vous êtes sûrs, passez à l’envoi.
         La première fois il vous sera demandé login et mot de passe

Le mot de passe est demandé à chaque fois en ligne de commande.
C’est pour cette raison qu’il peut être intéressant d’utiliser une interface graphique pour faire le push

Les branches

Lorsque vous initialisez un repo Git, votre code est placé dans la branche principale appelée master par défaut. Pour voir les branches présentes dans votre repo, utilisez la commande 

git branch

Pour créer une nouvelle branche, il vous suffit d’ajouter le nom de la branche à créer à la suite de la commande précédente :

git branch nouvelle-branche

Pour vous placer dans une autre branche à l’intérieur de votre repo, vous allez avoir besoin d’un nouveau mot-clé : checkout

git checkout nouvelle-branche

Lorsque vous travaillez sur plusieurs branches, il va souvent vous arriver de vouloir ajouter  dans une « branche A » les mises à jour que vous avez faites dans une autre « branche B ». Pour cela, on se place dans la branche A :

git checkout brancheA 
Puis on utilise la commande git merge :
git merge brancheB

Dans le cas de conflits, il faut modifier le fichier, et choisir quel contenu garder pour la branche dans laquelle vous faites le merge. Une fois que vous avez résolu le conflit, il vous reste à le dire à Git que vous avez fait votre choix ! Car pour l’instant, si vous faites un git status, git vous dira que vous avez des branches non fusionnées (« unmerged paths »).
Pour cela, faites un commit sans message

git commit

Git va détecter que vous avez résolu le conflit et vous proposer un message de commit par défaut :

Interfaces

Linux

Pour un interface plus complète, je préconise d’utiliser SmartGit
Qui est gratuit pour utilisation non commerciale

sudo apt-get install smartgit

Windows

Smartgit reste la solution la plus simple et gratuite.
SourceTree a été abandonné car demande création de compte : Bitbucket

Best Practrice

Lorsque vous souhaitez distribuer vos codes python, le bon choix est d’utiliser

pip freeze> requirements.txt 

pour obtenir un fichier de dépendance.
Vous pouvez ajouter requirements.txt dans le contrôle de version git.

En conclusion:

  • créer env / dans le dossier repo et l’ajouter env à .gitignore
  • __pycache__ à ‘ajouter env à .gitignore
  • ajouter requirements.txt au dépôt

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *