
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
- modifier le code source
- tester votre programme pour vérifier si cela fonctionne ;
- faire un commit pour « enregistrer » les changements et les faire connaître à Git ;
- 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