# Gestion des versions du projet avec GIT > Source : [Confluence EasyWMS France](https://easywmsfrance.atlassian.net/wiki/spaces/EF/pages/3000089968867/Gestion+des+versions+du+projet+avec+GIT) > Dernière mise à jour : 22/08/2025 (v27) --- La gestion est expliquée en parallèle via l'**invite de commande** et le logiciel **[SourceTree](https://easywmsfrance.atlassian.net/wiki/spaces/EF/pages/3000088854571)** (configuré en anglais). Ressources utiles : - [Équivalences git ↔ git flow](https://gist.github.com/JamesMGreene/cdd0ac49f90c987e45ac) - [Git flow cheat sheet](http://danielkummer.github.io/git-flow-cheatsheet/) --- ## 1 - Initialiser le projet en local ### Clone **Git (CLI) :** ```bash cd git clone ``` **SourceTree :** Utiliser le bouton "Clone" et renseigner l'URL du repo. > L'URL du repo GIT se trouve dans l'interface de gestion du projet (bouton "Clone" ou "Code" selon la plateforme). ### Initialiser Git Flow Git Flow est une extension de Git qui impose un workflow structuré et uniformise la gestion des branches. **Git (CLI) :** ```bash git flow init -d \ --feature feature/ \ --bugfix bugfix/ \ --release release/ \ --hotfix hotfix/ \ --support support/ \ -t '' git push --set-upstream origin develop ``` **SourceTree :** Cliquer sur l'icône Git Flow → ne rien modifier dans la fenêtre de configuration → cliquer sur **OK**. --- ## 2 - Création d'une nouvelle feature/branche Vérifier d'abord qu'il n'y a pas de commit à récupérer : **Git (CLI) :** ```bash git pull ``` **SourceTree :** Cliquer sur le bouton **"Pull"**. Créer la nouvelle feature pour la tâche : **Git (CLI) :** ```bash git flow feature start # Ex : git flow feature start PD-49 ``` **SourceTree :** Cliquer sur l'icône Git Flow → "Start New Feature" → saisir le nom. Déployer la VM depuis la nouvelle branche en repartant du point de contrôle **"DEPLOY 0"** : - [Déploiement d'une application existante](https://easywmsfrance.atlassian.net/wiki/spaces/EF/pages/3000089575437) - [Appliquer un point de contrôle](https://easywmsfrance.atlassian.net/wiki/spaces/EF/pages/3000088985657/Point+de+contr%C3%B4le+-+VM#Appliquer-un-point-de-contr%C3%B4le-%3A) > Si une pop-up de connexion apparaît sur SmartUI : [procédure dédiée](https://easywmsfrance.atlassian.net/wiki/spaces/EF/pages/3000144789544) Vous êtes prêt à commencer vos développements. ✅ --- ## 3 - Commit de vos modifications Avant de committer, exporter toutes les modifications réalisées : 1. **Exporter l'application custom** depuis votre branche de développement → [Gestion de la custom application — Export](https://easywmsfrance.atlassian.net/wiki/spaces/EF/pages/3000089673775/Gestion+de+la+custom+application#3---Export-de-l%E2%80%99application-custom) 2. **Si des paramètres/configurations WMS ont été modifiés** : faire un export des datas → [Export des données via uGNA](https://easywmsfrance.atlassian.net/wiki/spaces/EF/pages/3000145018888) 3. **Si des fichiers BOO du GNA ont été modifiés** : exécuter la sauvegarde → [Sauvegarder la configuration sur le GIT](https://easywmsfrance.atlassian.net/wiki/spaces/EF/pages/3000089673800/Installation+Services+et+Licence+WMS#Sauvegarder-la-configuration-sur-le-GIT) **Git (CLI) :** ```bash # Ajouter tous les fichiers modifiés git add . # Ou un fichier spécifique git add # Committer avec un message explicite git commit -m "" # Pousser sur la remote git push ``` **SourceTree :** 1. Cliquer sur **"Commit"** (haut à gauche) 2. Ajouter tous les fichiers via **"Stage all"**, ou fichier par fichier via drag & drop ou sélection + "Stage selected" 3. Écrire le message de commit 4. Cliquer sur **"Commit"** 5. Pour push simultané : cocher l'option **"Push changes immediately"** > ℹ️ Les fichiers générés par l'export de l'application custom sont séparés en plusieurs fichiers pour un même élément (workflow, source C#, DESIGN…). Bien prendre **tous les fichiers** portant le nom de l'élément modifié. > ⚠️ **Règle absolue** : commit et push ses développements **tous les soirs avant de quitter les bureaux** afin d'éviter toute perte de données (perte/vol/casse du PC). --- ## 4 - Fin de la tâche de développement Une fois les développements testés et validés, "clôturer" la branche de développement. ### Mettre à niveau la branche "develop" **Git (CLI) :** ```bash git switch develop git pull ``` **SourceTree :** Double-cliquer sur la branche `develop` pour la sélectionner, puis cliquer sur **"Pull"**. ### Clôturer la feature **Git (CLI) :** ```bash git flow feature finish -r git push # Ex : git flow feature finish -r PD-49 ``` **SourceTree :** 1. Cliquer sur l'icône Git Flow → sélectionner la feature à clôturer 2. ✅ Bien cocher **"Rebase on development Branch"** 3. Valider, puis cliquer sur **"Push"** ### Gérer les conflits Si des conflits apparaissent lors du rebase : 1. Ouvrir le ou les fichiers en conflit avec votre éditeur préféré (Visual Studio Code recommandé) et résoudre les conflits **Git (CLI) :** ```bash git add git rebase --continue # Répéter pour tous les commits jusqu'à la fin du rebase # Puis recommencer la clôture de la feature ``` **SourceTree :** 1. **Ne pas faire de commit** — seulement "stage" les fichiers résolus 2. Cliquer sur **"Continue Rebase"** 3. Répéter pour tous les commits de la branche `develop` 4. Recommencer la clôture de la feature **sans cocher "Rebase"** cette fois ### Mettre à jour l'état de la tâche Jira Passer le ticket à **"Revue de code"**. --- > Plus de détails sur les commandes Git : [Formation Git — Invite de commandes](https://easywmsfrance.atlassian.net/wiki/spaces/EF/pages/219995865278/Formation+Git#Utilisation-via-invite-de-commandes)