docs: Réorganisation complète de dev.md pour meilleure lisibilité
- Ajout d'une table des matières avec liens d'ancrage - Résumé rapide des 8 phases en début de document - Organisation claire par phases numérotées (1 à 8) - Section 'Référence des commandes' regroupant : - Commandes npm - Commandes Git - Commandes tea (Gitea CLI) - Conventions de commits - Semantic Versioning - Amélioration de la mise en forme et de la hiérarchie - Suppression des redondances - Date de dernière mise à jour ajoutée
This commit is contained in:
@@ -1,6 +1,64 @@
|
|||||||
# Workflow complet de développement (de A à Z)
|
# Workflow de développement SimpleConnect
|
||||||
|
|
||||||
Suivre **systématiquement** ce workflow pour chaque nouvelle fonctionnalité ou correction de bug :
|
Guide complet de A à Z pour le développement et la publication de nouvelles versions.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📑 Table des matières
|
||||||
|
|
||||||
|
1. [Résumé rapide](#résumé-rapide)
|
||||||
|
2. [Phase 1 : Développement itératif](#phase-1--développement-itératif)
|
||||||
|
3. [Phase 2 : Préparation de la release](#phase-2--préparation-de-la-release)
|
||||||
|
4. [Phase 3 : Fusion dans main](#phase-3--fusion-dans-main)
|
||||||
|
5. [Phase 4 : Build des exécutables](#phase-4--build-des-exécutables)
|
||||||
|
6. [Phase 5 : Documentation](#phase-5--documentation)
|
||||||
|
7. [Phase 6 : Publication sur Gitea](#phase-6--publication-sur-gitea)
|
||||||
|
8. [Phase 7 : Déploiement](#phase-7--déploiement-optionnel)
|
||||||
|
9. [Phase 8 : Nettoyage](#phase-8--nettoyage-des-branches)
|
||||||
|
10. [Référence des commandes](#référence-des-commandes)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Résumé rapide
|
||||||
|
|
||||||
|
```
|
||||||
|
Phase 1 : Développement
|
||||||
|
1. Créer branche feature
|
||||||
|
2. Développer → Tester → Committer (répéter)
|
||||||
|
|
||||||
|
Phase 2 : Release
|
||||||
|
3. Mettre à jour changelog
|
||||||
|
4. Bumper version package.json
|
||||||
|
5. Commit de release
|
||||||
|
|
||||||
|
Phase 3 : Fusion
|
||||||
|
6. Merger dans main (--no-ff)
|
||||||
|
7. Push vers origin
|
||||||
|
|
||||||
|
Phase 4 : Build
|
||||||
|
8. Build exécutables (macOS, Linux, Windows)
|
||||||
|
9. Organiser dans dist/vX.X.X/
|
||||||
|
|
||||||
|
Phase 5 : Documentation
|
||||||
|
10. Créer notes de release
|
||||||
|
11. Commit + push docs
|
||||||
|
|
||||||
|
Phase 6 : Publication
|
||||||
|
12. Créer tag Git
|
||||||
|
13. Push tag vers Gitea
|
||||||
|
14. Créer release avec tea
|
||||||
|
15. Vérifier assets
|
||||||
|
|
||||||
|
Phase 7 : Déploiement (optionnel)
|
||||||
|
16. Déployer sur serveur
|
||||||
|
|
||||||
|
Phase 8 : Nettoyage
|
||||||
|
17. Supprimer branches locales mergées
|
||||||
|
18. Supprimer branches distantes mergées
|
||||||
|
19. Prune références locales
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Phase 1 : Développement itératif
|
## Phase 1 : Développement itératif
|
||||||
|
|
||||||
@@ -8,7 +66,7 @@ Suivre **systématiquement** ce workflow pour chaque nouvelle fonctionnalité ou
|
|||||||
|
|
||||||
**Une fonctionnalité = plusieurs petits commits atomiques**
|
**Une fonctionnalité = plusieurs petits commits atomiques**
|
||||||
|
|
||||||
Éviter de faire un gros commit avec toute la fonctionnalité. Préférer découper en petites étapes testables :
|
Découper le travail en petites étapes testables plutôt qu'un gros commit :
|
||||||
|
|
||||||
```
|
```
|
||||||
Exemple : Ajouter un bouton "Pause" avec confirmation
|
Exemple : Ajouter un bouton "Pause" avec confirmation
|
||||||
@@ -24,18 +82,17 @@ git commit -m "feat: Ajouter bouton Pause avec modal et gestion IPBX"
|
|||||||
5. docs: Documenter la fonctionnalité de pause
|
5. docs: Documenter la fonctionnalité de pause
|
||||||
```
|
```
|
||||||
|
|
||||||
### 1. Créer une branche feature
|
### Étape 1 : Créer une branche feature
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git checkout -b feature/nom-de-la-fonctionnalite
|
git checkout -b feature/nom-de-la-fonctionnalite
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Cycle itératif (répéter jusqu'à complétion de la fonctionnalité)
|
### Étape 2 : Cycle itératif
|
||||||
|
|
||||||
**Pour chaque petite modification :**
|
Répéter jusqu'à complétion de la fonctionnalité :
|
||||||
|
|
||||||
#### a) Développer une petite partie
|
#### a) Développer une petite partie
|
||||||
|
|
||||||
- Faire UNE modification logique à la fois
|
- Faire UNE modification logique à la fois
|
||||||
- Ne pas chercher à tout finir d'un coup
|
- Ne pas chercher à tout finir d'un coup
|
||||||
- Rester concentré sur une seule tâche
|
- Rester concentré sur une seule tâche
|
||||||
@@ -52,18 +109,16 @@ npm run dev # Test en mode développement
|
|||||||
- Tester les cas limites
|
- Tester les cas limites
|
||||||
- S'assurer qu'aucune régression n'a été introduite
|
- S'assurer qu'aucune régression n'a été introduite
|
||||||
|
|
||||||
#### c) Committer (commit atomique)
|
#### c) Committer
|
||||||
|
|
||||||
Seulement après avoir testé avec succès :
|
Seulement après avoir testé avec succès :
|
||||||
|
|
||||||
- Préfixes : `feat:`, `fix:`, `refactor:`, `docs:`, `style:`, `test:`, `chore:`
|
|
||||||
- Un commit = une modification logique
|
|
||||||
- Messages clairs et descriptifs
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git commit -m "feat: Ajouter le bouton Pause dans le header"
|
git commit -m "feat: Ajouter le bouton Pause dans le header"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Préfixes de commit** : `feat:`, `fix:`, `refactor:`, `docs:`, `style:`, `test:`, `chore:`
|
||||||
|
|
||||||
**Pourquoi tester avant de committer ?**
|
**Pourquoi tester avant de committer ?**
|
||||||
- Historique Git propre (chaque commit = code fonctionnel)
|
- Historique Git propre (chaque commit = code fonctionnel)
|
||||||
- Rollback facile vers un état stable
|
- Rollback facile vers un état stable
|
||||||
@@ -71,13 +126,11 @@ git commit -m "feat: Ajouter le bouton Pause dans le header"
|
|||||||
|
|
||||||
#### d) Continuer
|
#### d) Continuer
|
||||||
|
|
||||||
Retour à l'étape **a)** pour la prochaine petite modification, jusqu'à ce que la fonctionnalité soit complète.
|
Retour à l'étape **a)** jusqu'à ce que la fonctionnalité soit complète.
|
||||||
|
|
||||||
### 3. Fonctionnalité terminée → Passer à la Phase 2 (Release)
|
### Exception : WIP commits
|
||||||
|
|
||||||
Une fois tous les commits de la fonctionnalité effectués, passer à la préparation de la release ci-dessous.
|
Pour sauvegarder un travail en cours :
|
||||||
|
|
||||||
**Exception - WIP commits** (travail en cours à sauvegarder) :
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git commit -m "wip: Travail en cours sur la fonctionnalité X"
|
git commit -m "wip: Travail en cours sur la fonctionnalité X"
|
||||||
@@ -89,21 +142,43 @@ git commit --amend -m "feat: Ajouter la fonctionnalité X"
|
|||||||
|
|
||||||
## Phase 2 : Préparation de la release
|
## Phase 2 : Préparation de la release
|
||||||
|
|
||||||
### 4. Mettre à jour le changelog (`docs/changelog.md`)
|
### Étape 3 : Mettre à jour le changelog
|
||||||
|
|
||||||
- Obtenir la date : `date +%Y-%m-%d`
|
Fichier : `docs/changelog.md`
|
||||||
- Format : `## [X.X.X] - AAAA-MM-JJ`
|
|
||||||
- Catégories : **Ajouté**, **Modifié**, **Corrigé**, **Supprimé**, **Technique**, **Documentation**
|
|
||||||
- Ajouter en haut du fichier (au-dessus de la version précédente)
|
|
||||||
|
|
||||||
### 5. Bumper la version (`package.json`)
|
```bash
|
||||||
|
# Obtenir la date
|
||||||
|
date +%Y-%m-%d
|
||||||
|
```
|
||||||
|
|
||||||
|
**Format** :
|
||||||
|
```markdown
|
||||||
|
## [X.X.X] - AAAA-MM-JJ
|
||||||
|
|
||||||
|
### Ajouté
|
||||||
|
- Fonctionnalité 1
|
||||||
|
|
||||||
|
### Modifié
|
||||||
|
- Changement 1
|
||||||
|
|
||||||
|
### Corrigé
|
||||||
|
- Bug 1
|
||||||
|
```
|
||||||
|
|
||||||
|
Catégories : **Ajouté**, **Modifié**, **Corrigé**, **Supprimé**, **Technique**, **Documentation**
|
||||||
|
|
||||||
|
### Étape 4 : Bumper la version
|
||||||
|
|
||||||
|
Fichier : `package.json`
|
||||||
|
|
||||||
|
**Semantic Versioning** :
|
||||||
- **PATCH** (x.x.+1) : Corrections, petits ajustements
|
- **PATCH** (x.x.+1) : Corrections, petits ajustements
|
||||||
- **MINOR** (x.+1.0) : Nouvelles fonctionnalités compatibles
|
- **MINOR** (x.+1.0) : Nouvelles fonctionnalités compatibles
|
||||||
- **MAJOR** (+1.0.0) : Changements majeurs incompatibles
|
- **MAJOR** (+1.0.0) : Changements majeurs incompatibles
|
||||||
- Modifier le champ `"version": "X.X.X"`
|
|
||||||
|
|
||||||
### 6. Commit de release
|
Modifier le champ `"version": "X.X.X"`
|
||||||
|
|
||||||
|
### Étape 5 : Commit de release
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git add docs/changelog.md package.json
|
git add docs/changelog.md package.json
|
||||||
@@ -115,22 +190,22 @@ git commit -m "release: Version X.X.X - Titre court
|
|||||||
- Bump version X.X.X"
|
- Bump version X.X.X"
|
||||||
```
|
```
|
||||||
|
|
||||||
**Important** : Ne jamais mentionner Claude, Anthropic ou des adresses emails relatives à ces entités
|
**Important** : Ne jamais mentionner Claude, Anthropic ou des adresses emails relatives à ces entités.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase 3 : Fusion dans main
|
## Phase 3 : Fusion dans main
|
||||||
|
|
||||||
### 7. Basculer sur main et fusionner
|
### Étape 6 : Merger dans main
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git checkout main
|
git checkout main
|
||||||
git merge feature/nom-de-la-fonctionnalite --no-ff
|
git merge feature/nom-de-la-fonctionnalite --no-ff
|
||||||
```
|
```
|
||||||
|
|
||||||
- `--no-ff` : Force un merge commit (historique propre et tracé)
|
**Option `--no-ff`** : Force un merge commit pour un historique propre et tracé
|
||||||
|
|
||||||
### 8. Push vers origin
|
### Étape 7 : Push vers origin
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git push origin main
|
git push origin main
|
||||||
@@ -140,7 +215,7 @@ git push origin main
|
|||||||
|
|
||||||
## Phase 4 : Build des exécutables
|
## Phase 4 : Build des exécutables
|
||||||
|
|
||||||
### 9. Build pour les plateformes nécessaires
|
### Étape 8 : Build pour les plateformes
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# macOS (si développement sur Mac)
|
# macOS (si développement sur Mac)
|
||||||
@@ -153,7 +228,7 @@ npm run build:linux-x64
|
|||||||
npm run build:win
|
npm run build:win
|
||||||
```
|
```
|
||||||
|
|
||||||
### 10. Organiser les builds dans `dist/vX.X.X/`
|
### Étape 9 : Organiser les builds
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Créer le dossier de version
|
# Créer le dossier de version
|
||||||
@@ -172,20 +247,22 @@ ls -lh dist/vX.X.X/
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase 5 : Documentation finale
|
## Phase 5 : Documentation
|
||||||
|
|
||||||
### 11. Créer les notes de release (`releases/vX.X.X.md`)
|
### Étape 10 : Créer les notes de release
|
||||||
|
|
||||||
- Structure markdown avec sections :
|
Fichier : `releases/vX.X.X.md`
|
||||||
- Titre et date
|
|
||||||
- Résumé des changements
|
|
||||||
- Nouveautés principales
|
|
||||||
- Corrections
|
|
||||||
- Fichiers disponibles
|
|
||||||
- Compatibilité
|
|
||||||
- Guide d'utilisation (si nécessaire)
|
|
||||||
|
|
||||||
### 12. Commit et push de la documentation
|
**Structure markdown** :
|
||||||
|
- Titre et date
|
||||||
|
- Résumé des changements
|
||||||
|
- Nouveautés principales
|
||||||
|
- Corrections
|
||||||
|
- Fichiers disponibles
|
||||||
|
- Compatibilité
|
||||||
|
- Guide d'utilisation (si nécessaire)
|
||||||
|
|
||||||
|
### Étape 11 : Commit et push de la documentation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git add releases/vX.X.X.md
|
git add releases/vX.X.X.md
|
||||||
@@ -197,7 +274,7 @@ git push origin main
|
|||||||
|
|
||||||
## Phase 6 : Publication sur Gitea
|
## Phase 6 : Publication sur Gitea
|
||||||
|
|
||||||
### 13. Créer le tag Git
|
### Étape 12 : Créer le tag Git
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Trouver le commit de release
|
# Trouver le commit de release
|
||||||
@@ -212,21 +289,21 @@ Description des principales fonctionnalités
|
|||||||
- Correction 1"
|
- Correction 1"
|
||||||
```
|
```
|
||||||
|
|
||||||
### 14. Push du tag vers Gitea
|
### Étape 13 : Push du tag
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git push origin vX.X.X
|
git push origin vX.X.X
|
||||||
```
|
```
|
||||||
|
|
||||||
### 15. Créer la release sur Gitea avec l'outil `tea`
|
### Étape 14 : Créer la release avec `tea`
|
||||||
|
|
||||||
**Prérequis** : S'assurer que `tea` est configuré avec le login `simpleconnect`
|
**Prérequis** : `tea` configuré avec le login `simpleconnect`
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Vérifier la configuration tea
|
# Vérifier la configuration
|
||||||
tea login list
|
tea login list
|
||||||
|
|
||||||
# Créer la release avec tous les fichiers binaires
|
# Créer la release avec tous les fichiers
|
||||||
tea release create \
|
tea release create \
|
||||||
--login simpleconnect \
|
--login simpleconnect \
|
||||||
--repo pierre/SimpleConnect-client-electron \
|
--repo pierre/SimpleConnect-client-electron \
|
||||||
@@ -238,18 +315,18 @@ tea release create \
|
|||||||
--asset dist/vX.X.X/SimpleConnect-X.X.X-arm64-mac.zip
|
--asset dist/vX.X.X/SimpleConnect-X.X.X-arm64-mac.zip
|
||||||
```
|
```
|
||||||
|
|
||||||
**Notes importantes** :
|
**Notes** :
|
||||||
- L'option `--note-file` utilise le fichier markdown des notes de release
|
- `--note-file` utilise le fichier markdown des notes
|
||||||
- On peut spécifier plusieurs `--asset` pour uploader tous les binaires en une fois
|
- Multiple `--asset` pour uploader tous les binaires
|
||||||
- Le code source (TAR.GZ et ZIP) est ajouté automatiquement par Gitea
|
- Code source (TAR.GZ et ZIP) ajouté automatiquement par Gitea
|
||||||
|
|
||||||
### 16. Vérifier la release sur Gitea
|
### Étape 15 : Vérifier la release
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Lister toutes les releases
|
# Lister toutes les releases
|
||||||
tea release list --login simpleconnect --repo pierre/SimpleConnect-client-electron
|
tea release list --login simpleconnect --repo pierre/SimpleConnect-client-electron
|
||||||
|
|
||||||
# Vérifier les assets d'une release spécifique
|
# Vérifier les assets d'une release
|
||||||
tea release assets --login simpleconnect --repo pierre/SimpleConnect-client-electron vX.X.X
|
tea release assets --login simpleconnect --repo pierre/SimpleConnect-client-electron vX.X.X
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -259,10 +336,9 @@ tea release assets --login simpleconnect --repo pierre/SimpleConnect-client-elec
|
|||||||
- ✅ SimpleConnect-X.X.X-arm64-mac.zip (macOS)
|
- ✅ SimpleConnect-X.X.X-arm64-mac.zip (macOS)
|
||||||
- ✅ Code source (TAR.GZ et ZIP automatiques)
|
- ✅ Code source (TAR.GZ et ZIP automatiques)
|
||||||
|
|
||||||
### 17. Ajouter des assets manquants (si nécessaire)
|
### Corrections éventuelles
|
||||||
|
|
||||||
Si des fichiers ont été oubliés ou doivent être ajoutés après coup :
|
|
||||||
|
|
||||||
|
**Ajouter des assets manquants** :
|
||||||
```bash
|
```bash
|
||||||
tea release assets create \
|
tea release assets create \
|
||||||
--login simpleconnect \
|
--login simpleconnect \
|
||||||
@@ -271,8 +347,7 @@ tea release assets create \
|
|||||||
dist/vX.X.X/fichier-supplementaire.ext
|
dist/vX.X.X/fichier-supplementaire.ext
|
||||||
```
|
```
|
||||||
|
|
||||||
### 18. Supprimer des assets en doublon (si nécessaire)
|
**Supprimer des doublons** :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
tea release assets delete \
|
tea release assets delete \
|
||||||
--login simpleconnect \
|
--login simpleconnect \
|
||||||
@@ -284,9 +359,9 @@ tea release assets delete \
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase 7 : Déploiement sur serveur (optionnel)
|
## Phase 7 : Déploiement (optionnel)
|
||||||
|
|
||||||
### 19. Déployer sur le serveur de production
|
### Étape 16 : Déployer sur le serveur
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
scp dist/vX.X.X/SimpleConnect-X.X.X.AppImage user@server:/path/to/app/
|
scp dist/vX.X.X/SimpleConnect-X.X.X.AppImage user@server:/path/to/app/
|
||||||
@@ -294,43 +369,103 @@ scp dist/vX.X.X/SimpleConnect-X.X.X.AppImage user@server:/path/to/app/
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Résumé du workflow complet
|
## Phase 8 : Nettoyage des branches
|
||||||
|
|
||||||
|
Une fois la release publiée et déployée, nettoyer les branches mergées.
|
||||||
|
|
||||||
|
### Étape 17 : Supprimer les branches locales
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Vérifier les branches mergées
|
||||||
|
git branch --merged main
|
||||||
|
|
||||||
|
# Supprimer automatiquement toutes les branches mergées
|
||||||
|
git branch --merged main | grep -v "^\*" | grep -v "main" | xargs -n 1 git branch -d
|
||||||
|
|
||||||
|
# Ou manuellement
|
||||||
|
git branch -d feature/nom-de-la-fonctionnalite
|
||||||
|
|
||||||
|
# Forcer si la branche a un remote (option -D)
|
||||||
|
git branch -D feature/nom-de-la-fonctionnalite
|
||||||
```
|
```
|
||||||
1. git checkout -b feature/XXX
|
|
||||||
2. BOUCLE (jusqu'à fonctionnalité complète) :
|
**Pourquoi `-D` peut être nécessaire ?**
|
||||||
a) Développer une petite partie
|
- Git refuse `-d` si la branche a encore un remote associé
|
||||||
b) Tester (npm run dev)
|
- Même mergée dans main, Git veut s'assurer qu'elle est mergée dans origin/branche
|
||||||
c) Committer (git commit -m "...")
|
- `-D` est sûr si on a vérifié le merge dans main
|
||||||
d) Continuer
|
|
||||||
3. Mettre à jour changelog
|
### Étape 18 : Supprimer les branches distantes
|
||||||
4. Bumper version package.json
|
|
||||||
5. Commit de release
|
```bash
|
||||||
6. Merger dans main (--no-ff)
|
# Supprimer une ou plusieurs branches
|
||||||
7. Push
|
git push origin --delete feature/nom-1 feature/nom-2 feature/nom-3
|
||||||
8. Build des exécutables
|
|
||||||
9. Organiser dist/vX.X.X/
|
# Vérifier la suppression
|
||||||
10. Notes de release
|
git branch -a
|
||||||
11. Commit + push docs
|
|
||||||
12. Créer tag Git
|
|
||||||
13. Push tag vers Gitea
|
|
||||||
14. Créer release sur Gitea avec tea
|
|
||||||
15. Vérifier assets sur Gitea
|
|
||||||
16. Déployer sur serveur (optionnel)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Étape 19 : Nettoyer les références locales
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Supprimer les références aux branches distantes supprimées
|
||||||
|
git remote prune origin
|
||||||
|
|
||||||
|
# Ou avec fetch
|
||||||
|
git fetch --prune
|
||||||
|
```
|
||||||
|
|
||||||
|
**Résultat attendu** : Seules les branches `main` et celles en cours de travail restent.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Commandes `tea` utiles
|
## Référence des commandes
|
||||||
|
|
||||||
|
### Commandes npm
|
||||||
|
|
||||||
### Gestion des logins
|
|
||||||
```bash
|
```bash
|
||||||
tea login list # Lister les logins configurés
|
npm start # Lance l'application en production
|
||||||
tea login add # Ajouter un nouveau login
|
npm run dev # Mode développement avec DevTools
|
||||||
tea login default <nom> # Définir un login par défaut
|
npm run build # Build pour toutes les plateformes
|
||||||
|
npm run build:win # Build Windows
|
||||||
|
npm run build:mac # Build macOS
|
||||||
|
npm run build:linux # Build Linux
|
||||||
|
npm run build:linux-x64 # Build Linux x64
|
||||||
|
npm run build:linux-arm64 # Build Linux ARM64
|
||||||
```
|
```
|
||||||
|
|
||||||
### Gestion des releases
|
### Commandes Git
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Branches
|
||||||
|
git checkout -b feature/XXX # Créer une branche
|
||||||
|
git branch --merged main # Lister branches mergées
|
||||||
|
git branch -d feature/XXX # Supprimer branche locale
|
||||||
|
git branch -D feature/XXX # Forcer suppression
|
||||||
|
git push origin --delete XXX # Supprimer branche distante
|
||||||
|
|
||||||
|
# Tags
|
||||||
|
git tag -a vX.X.X <hash> -m "..." # Créer tag annoté
|
||||||
|
git push origin vX.X.X # Push tag
|
||||||
|
git tag -l # Lister tags
|
||||||
|
|
||||||
|
# Merge
|
||||||
|
git merge feature/XXX --no-ff # Merge avec commit
|
||||||
|
|
||||||
|
# Nettoyage
|
||||||
|
git remote prune origin # Nettoyer références
|
||||||
|
git fetch --prune # Fetch + nettoyage
|
||||||
|
```
|
||||||
|
|
||||||
|
### Commandes `tea` (Gitea CLI)
|
||||||
|
|
||||||
|
#### Logins
|
||||||
|
```bash
|
||||||
|
tea login list # Lister logins configurés
|
||||||
|
tea login add # Ajouter un login
|
||||||
|
tea login default <nom> # Définir login par défaut
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Releases
|
||||||
```bash
|
```bash
|
||||||
tea release list --login simpleconnect --repo pierre/SimpleConnect-client-electron
|
tea release list --login simpleconnect --repo pierre/SimpleConnect-client-electron
|
||||||
tea release create --help
|
tea release create --help
|
||||||
@@ -338,16 +473,44 @@ tea release edit vX.X.X --title "Nouveau titre"
|
|||||||
tea release delete vX.X.X --confirm
|
tea release delete vX.X.X --confirm
|
||||||
```
|
```
|
||||||
|
|
||||||
### Gestion des assets
|
#### Assets
|
||||||
```bash
|
```bash
|
||||||
tea release assets list vX.X.X
|
tea release assets list vX.X.X
|
||||||
tea release assets create vX.X.X fichier.ext
|
tea release assets create vX.X.X fichier.ext
|
||||||
tea release assets delete vX.X.X fichier.ext --confirm
|
tea release assets delete vX.X.X fichier.ext --confirm
|
||||||
```
|
```
|
||||||
|
|
||||||
### Options globales
|
#### Options globales
|
||||||
```bash
|
```bash
|
||||||
--login simpleconnect # Utiliser le login 'simpleconnect'
|
--login simpleconnect # Utiliser le login 'simpleconnect'
|
||||||
--repo pierre/SimpleConnect-client-electron # Spécifier le repository
|
--repo pierre/SimpleConnect-client-electron # Spécifier le repository
|
||||||
--output json # Format de sortie (simple, table, json, yaml)
|
--output json # Format de sortie (json, yaml, table)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Conventions de commits
|
||||||
|
|
||||||
|
```bash
|
||||||
|
feat: # Nouvelle fonctionnalité
|
||||||
|
fix: # Correction de bug
|
||||||
|
refactor: # Refactoring
|
||||||
|
docs: # Documentation
|
||||||
|
style: # Formatage, style
|
||||||
|
test: # Tests
|
||||||
|
chore: # Maintenance, tâches diverses
|
||||||
|
release: # Commit de release
|
||||||
|
wip: # Work in progress (temporaire)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Semantic Versioning
|
||||||
|
|
||||||
|
```
|
||||||
|
MAJOR.MINOR.PATCH
|
||||||
|
|
||||||
|
MAJOR (X.0.0) # Changements incompatibles
|
||||||
|
MINOR (x.X.0) # Nouvelles fonctionnalités compatibles
|
||||||
|
PATCH (x.x.X) # Corrections de bugs
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Dernière mise à jour** : 2025-10-21
|
||||||
|
|||||||
Reference in New Issue
Block a user