Files
mcp-wms-wiki/wiki/sources/archives/Gestion_versions_projet_GIT.md
2026-05-20 09:41:27 +02:00

171 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 <emplacement souhaité>
git clone <url>
```
**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 <nom de la feature>
# 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 <Nom du fichier>
# Committer avec un message explicite
git commit -m "<Message expliquant vos modifications>"
# 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 <Nom feature>
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 <nom du fichier en conflit>
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)