171 lines
5.8 KiB
Markdown
171 lines
5.8 KiB
Markdown
# 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)
|