@atlashub/smartstack-cli 1.6.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -30
- package/dist/index.js +3 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/agents/gitflow/status.md +11 -98
- package/templates/commands/gitflow/2-status.md +58 -238
package/package.json
CHANGED
|
@@ -8,112 +8,25 @@ tools: Bash, Read, Glob
|
|
|
8
8
|
|
|
9
9
|
# GitFlow Status Agent
|
|
10
10
|
|
|
11
|
-
Expert GitFlow.
|
|
11
|
+
Expert GitFlow. Analyse rapide de l'etat du repository .NET.
|
|
12
12
|
|
|
13
13
|
## Workflow
|
|
14
14
|
|
|
15
|
-
1. **
|
|
16
|
-
2. **
|
|
17
|
-
3. **
|
|
18
|
-
4. **
|
|
19
|
-
5. **Output**: Affichage complet et comprehensible
|
|
20
|
-
|
|
21
|
-
## Commandes a executer
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
# 1. BRANCHES
|
|
25
|
-
git fetch --all --quiet 2>/dev/null
|
|
26
|
-
git for-each-ref --sort=-committerdate --format='%(refname:short)|%(objectname:short)|%(committerdate:short)|%(subject)' refs/heads refs/remotes/origin
|
|
27
|
-
git worktree list
|
|
28
|
-
git branch -vv
|
|
29
|
-
|
|
30
|
-
# 2. TAGS
|
|
31
|
-
git for-each-ref --sort=-v:refname --format='%(refname:short)|%(creatordate:short)|%(subject)' refs/tags
|
|
32
|
-
git describe --tags --abbrev=0 main 2>/dev/null
|
|
33
|
-
git describe --tags --abbrev=0 develop 2>/dev/null
|
|
34
|
-
|
|
35
|
-
# 3. COMPARAISONS
|
|
36
|
-
git rev-list --count main..develop 2>/dev/null # commits sur develop a publier
|
|
37
|
-
git rev-list --count develop..main 2>/dev/null # commits sur main a recuperer
|
|
38
|
-
git log develop..main --oneline 2>/dev/null # si main > 0
|
|
39
|
-
|
|
40
|
-
# Pour chaque release/*
|
|
41
|
-
git branch -a | grep release/
|
|
42
|
-
# Pour chaque: ahead/behind vs develop et main
|
|
43
|
-
|
|
44
|
-
# 4. STATUS
|
|
45
|
-
git status --porcelain
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Vocabulaire simplifie (IMPORTANT)
|
|
49
|
-
|
|
50
|
-
Utiliser ces termes au lieu du jargon Git:
|
|
51
|
-
- "ahead" → "a publier" ou "prets pour production"
|
|
52
|
-
- "behind" → "a recuperer" ou "manquants"
|
|
53
|
-
- "diverged" → "desynchronise"
|
|
54
|
-
- "merge" → "fusionner" ou "integrer"
|
|
55
|
-
- "branch" → "branche" (garder)
|
|
56
|
-
- "commit" → "changement" ou "modification"
|
|
57
|
-
- "tag" → "version" ou "etiquette de version"
|
|
15
|
+
1. **Git**: Branche, commits ahead/behind, fichiers modifies
|
|
16
|
+
2. **Version**: Lire depuis source configuree (csproj, VERSION, git-tag)
|
|
17
|
+
3. **EF Core**: Detecter migrations pending
|
|
18
|
+
4. **Output**: Resume compact
|
|
58
19
|
|
|
59
20
|
## Output Format
|
|
60
21
|
|
|
61
|
-
Suivre le format defini dans la commande 2-status.md avec:
|
|
62
|
-
- Tableaux clairs avec bordures
|
|
63
|
-
- Legendes explicatives
|
|
64
|
-
- Actions concretes a faire
|
|
65
|
-
- Pas de jargon technique sans explication
|
|
66
|
-
|
|
67
|
-
## Generation des ACTIONS A FAIRE (CRITIQUE)
|
|
68
|
-
|
|
69
|
-
A la fin de l'affichage, TOUJOURS generer une section "ACTIONS A FAIRE" avec des commandes PRETES A COPIER-COLLER.
|
|
70
|
-
|
|
71
|
-
### Regles de generation:
|
|
72
|
-
|
|
73
|
-
1. **Analyser l'etat** et generer UNIQUEMENT les actions pertinentes
|
|
74
|
-
2. **Inclure le nom exact** de la branche/feature/release dans la commande
|
|
75
|
-
3. **Format obligatoire** - UNE commande par ligne, facilement copiable:
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
{emoji} {Description claire avec contexte}
|
|
79
|
-
{commande complete prete a copier}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
**IMPORTANT**: La commande doit etre sur SA PROPRE LIGNE, sans prefixe, pour etre copiable en un clic.
|
|
83
|
-
|
|
84
|
-
### Logique de detection:
|
|
85
|
-
|
|
86
|
-
| Condition detectee | Action a proposer |
|
|
87
|
-
|--------------------|-------------------|
|
|
88
|
-
| `main → develop > 0` | `git merge main` |
|
|
89
|
-
| `develop → main > 0` | `/gitflow:start release v{next_version}` |
|
|
90
|
-
| `feature/* ahead > 0 && behind == 0` | `/gitflow:finish feature/{name}` |
|
|
91
|
-
| `feature/* behind > 5` | `/gitflow:rebase feature/{name}` |
|
|
92
|
-
| `release/* ahead == 0` | `/gitflow:cleanup release/{name}` |
|
|
93
|
-
| `git status dirty` | `/gitflow:commit "{contexte}"` |
|
|
94
|
-
| `local ahead of remote` | `/gitflow:sync {branch}` |
|
|
95
|
-
| `local behind remote` | `/gitflow:sync {branch}` |
|
|
96
|
-
| `migrations pending` | `/efcore:db-deploy` |
|
|
97
|
-
|
|
98
|
-
### Exemple de sortie:
|
|
99
|
-
|
|
100
22
|
```
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
git merge main
|
|
107
|
-
|
|
108
|
-
🗑️ Nettoyer release/v1.5.1 (terminee, 0 commits uniques)
|
|
109
|
-
/gitflow:cleanup release/v1.5.1
|
|
110
|
-
|
|
111
|
-
🗑️ Nettoyer release/v1.4.2 (terminee, 0 commits uniques)
|
|
112
|
-
/gitflow:cleanup release/v1.4.2
|
|
113
|
-
|
|
114
|
-
══════════════════════════════════════════════════════════════════════════════
|
|
23
|
+
BRANCH: {branch} ({type})
|
|
24
|
+
STATUS: {clean|dirty} | {n} ahead | {n} behind
|
|
25
|
+
VERSION: {version} (source: {file})
|
|
26
|
+
MIGRATIONS: {n} pending | {n} total
|
|
27
|
+
NEXT: {action recommandee}
|
|
115
28
|
```
|
|
116
29
|
|
|
117
30
|
## Priority
|
|
118
31
|
|
|
119
|
-
|
|
32
|
+
Speed > Detail. Etat essentiel seulement.
|
|
@@ -6,65 +6,18 @@ model: haiku
|
|
|
6
6
|
|
|
7
7
|
# Phase 2: STATUS - Overview
|
|
8
8
|
|
|
9
|
-
Tu es expert GitFlow et EF Core. Affiche l'etat
|
|
9
|
+
Tu es expert GitFlow et EF Core. Affiche l'etat complet du projet.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
## Informations a collecter
|
|
14
14
|
|
|
15
|
-
###
|
|
16
|
-
|
|
17
|
-
#### Toutes les branches (locales et remote)
|
|
18
|
-
```bash
|
|
19
|
-
# Fetch pour avoir les infos a jour
|
|
20
|
-
git fetch --all --quiet 2>/dev/null
|
|
21
|
-
|
|
22
|
-
# Branches locales avec dernier commit
|
|
23
|
-
echo "=== BRANCHES LOCALES ==="
|
|
24
|
-
git for-each-ref --sort=-committerdate --format='%(refname:short)|%(objectname:short)|%(committerdate:short)|%(subject)' refs/heads
|
|
25
|
-
|
|
26
|
-
# Branches remote avec dernier commit
|
|
27
|
-
echo "=== BRANCHES REMOTE ==="
|
|
28
|
-
git for-each-ref --sort=-committerdate --format='%(refname:short)|%(objectname:short)|%(committerdate:short)|%(subject)' refs/remotes/origin
|
|
29
|
-
|
|
30
|
-
# Worktrees actifs
|
|
31
|
-
echo "=== WORKTREES ==="
|
|
32
|
-
git worktree list
|
|
33
|
-
|
|
34
|
-
# Tracking relationships
|
|
35
|
-
echo "=== TRACKING ==="
|
|
36
|
-
git branch -vv
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### 2. TAGS - Tous les tags avec details
|
|
40
|
-
```bash
|
|
41
|
-
# Tous les tags tries par version (newest first)
|
|
42
|
-
echo "=== TAGS ==="
|
|
43
|
-
git for-each-ref --sort=-v:refname --format='%(refname:short)|%(creatordate:short)|%(subject)' refs/tags
|
|
44
|
-
|
|
45
|
-
# Dernier tag sur chaque branche principale
|
|
46
|
-
echo "=== LATEST TAG PER BRANCH ==="
|
|
47
|
-
for branch in main develop; do
|
|
48
|
-
if git rev-parse --verify $branch >/dev/null 2>&1; then
|
|
49
|
-
TAG=$(git describe --tags --abbrev=0 $branch 2>/dev/null || echo "none")
|
|
50
|
-
AHEAD=$(git rev-list --count $TAG..$branch 2>/dev/null || echo "0")
|
|
51
|
-
echo "$branch: $TAG (+$AHEAD commits)"
|
|
52
|
-
fi
|
|
53
|
-
done
|
|
54
|
-
|
|
55
|
-
# Quelles branches contiennent quels tags (3 derniers tags)
|
|
56
|
-
echo "=== TAG CONTAINMENT ==="
|
|
57
|
-
for tag in $(git tag -l --sort=-v:refname | head -3); do
|
|
58
|
-
BRANCHES=$(git branch -a --contains $tag 2>/dev/null | tr '\n' ',' | sed 's/,$//')
|
|
59
|
-
echo "$tag: $BRANCHES"
|
|
60
|
-
done
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 3. Git Status courant
|
|
15
|
+
### Git
|
|
64
16
|
- Branche courante et type (feature/release/hotfix/develop/main)
|
|
65
17
|
- Etat working directory (clean/dirty)
|
|
66
18
|
- Synchronisation locale vs remote (push/pull needed)
|
|
67
19
|
- Synchronisation vs develop et main (commits ahead/behind)
|
|
20
|
+
- Dernier tag
|
|
68
21
|
|
|
69
22
|
### Sync Local vs Remote
|
|
70
23
|
```bash
|
|
@@ -98,82 +51,29 @@ else
|
|
|
98
51
|
fi
|
|
99
52
|
```
|
|
100
53
|
|
|
101
|
-
###
|
|
54
|
+
### Sync develop vs main (CRITIQUE)
|
|
102
55
|
|
|
103
56
|
```bash
|
|
104
|
-
# === DEVELOP vs MAIN ===
|
|
105
|
-
echo "=== DEVELOP vs MAIN ==="
|
|
106
|
-
|
|
107
57
|
# Commits sur develop absents de main (normal - a releaser)
|
|
108
|
-
DEVELOP_AHEAD=$(git rev-list --count main..develop 2>/dev/null || echo "0")
|
|
58
|
+
DEVELOP_AHEAD=$(git rev-list --count origin/main..origin/develop 2>/dev/null || echo "0")
|
|
109
59
|
|
|
110
60
|
# Commits sur main absents de develop (ANORMAL - hotfix non merge back?)
|
|
111
|
-
MAIN_AHEAD=$(git rev-list --count develop..main 2>/dev/null || echo "0")
|
|
112
|
-
|
|
113
|
-
echo "develop → main: +$DEVELOP_AHEAD commits"
|
|
114
|
-
echo "main → develop: +$MAIN_AHEAD commits"
|
|
61
|
+
MAIN_AHEAD=$(git rev-list --count origin/develop..origin/main 2>/dev/null || echo "0")
|
|
115
62
|
|
|
116
63
|
# Determiner l'etat de synchronisation
|
|
117
64
|
if [ "$DEVELOP_AHEAD" -eq 0 ] && [ "$MAIN_AHEAD" -eq 0 ]; then
|
|
118
|
-
|
|
65
|
+
BASE_SYNC="SYNCHRONIZED"
|
|
119
66
|
elif [ "$MAIN_AHEAD" -gt 0 ]; then
|
|
120
|
-
|
|
67
|
+
BASE_SYNC="DIVERGED" # PROBLEME!
|
|
121
68
|
elif [ "$DEVELOP_AHEAD" -gt 0 ]; then
|
|
122
|
-
|
|
69
|
+
BASE_SYNC="RELEASE_NEEDED" # Normal
|
|
123
70
|
fi
|
|
124
|
-
|
|
125
|
-
# === RELEASES EN COURS ===
|
|
126
|
-
echo ""
|
|
127
|
-
echo "=== RELEASES EN COURS ==="
|
|
128
|
-
|
|
129
|
-
# Pour chaque branche release (locale et remote)
|
|
130
|
-
for RELEASE in $(git branch -a | grep -E 'release/' | sed 's/.*release\//release\//' | sort -u); do
|
|
131
|
-
BRANCH_NAME=$(echo $RELEASE | sed 's/remotes\/origin\///')
|
|
132
|
-
|
|
133
|
-
# Verifier si la branche existe
|
|
134
|
-
if git rev-parse --verify $BRANCH_NAME >/dev/null 2>&1; then
|
|
135
|
-
REL_VS_DEV_AHEAD=$(git rev-list --count develop..$BRANCH_NAME 2>/dev/null || echo "0")
|
|
136
|
-
REL_VS_DEV_BEHIND=$(git rev-list --count $BRANCH_NAME..develop 2>/dev/null || echo "0")
|
|
137
|
-
REL_VS_MAIN_AHEAD=$(git rev-list --count main..$BRANCH_NAME 2>/dev/null || echo "0")
|
|
138
|
-
REL_VS_MAIN_BEHIND=$(git rev-list --count $BRANCH_NAME..main 2>/dev/null || echo "0")
|
|
139
|
-
LAST_COMMIT=$(git log -1 --format='%h %s' $BRANCH_NAME 2>/dev/null)
|
|
140
|
-
|
|
141
|
-
echo ""
|
|
142
|
-
echo "$BRANCH_NAME:"
|
|
143
|
-
echo " vs develop: +$REL_VS_DEV_AHEAD/-$REL_VS_DEV_BEHIND"
|
|
144
|
-
echo " vs main: +$REL_VS_MAIN_AHEAD/-$REL_VS_MAIN_BEHIND"
|
|
145
|
-
echo " last: $LAST_COMMIT"
|
|
146
|
-
|
|
147
|
-
# Status
|
|
148
|
-
if [ "$REL_VS_DEV_AHEAD" -eq 0 ] && [ "$REL_VS_MAIN_AHEAD" -eq 0 ]; then
|
|
149
|
-
echo " status: MERGED ✓ (peut etre supprimee)"
|
|
150
|
-
elif [ "$REL_VS_DEV_AHEAD" -gt 0 ] || [ "$REL_VS_MAIN_AHEAD" -gt 0 ]; then
|
|
151
|
-
echo " status: ACTIVE (commits non merges)"
|
|
152
|
-
fi
|
|
153
|
-
fi
|
|
154
|
-
done
|
|
155
|
-
|
|
156
|
-
# === FEATURES EN COURS ===
|
|
157
|
-
echo ""
|
|
158
|
-
echo "=== FEATURES EN COURS ==="
|
|
159
|
-
|
|
160
|
-
for FEATURE in $(git branch -a | grep -E 'feature/' | sed 's/.*feature\//feature\//' | sort -u | head -10); do
|
|
161
|
-
BRANCH_NAME=$(echo $FEATURE | sed 's/remotes\/origin\///')
|
|
162
|
-
|
|
163
|
-
if git rev-parse --verify $BRANCH_NAME >/dev/null 2>&1; then
|
|
164
|
-
FEAT_VS_DEV_AHEAD=$(git rev-list --count develop..$BRANCH_NAME 2>/dev/null || echo "0")
|
|
165
|
-
FEAT_VS_DEV_BEHIND=$(git rev-list --count $BRANCH_NAME..develop 2>/dev/null || echo "0")
|
|
166
|
-
LAST_COMMIT=$(git log -1 --format='%h %s' $BRANCH_NAME 2>/dev/null)
|
|
167
|
-
|
|
168
|
-
echo "$BRANCH_NAME: +$FEAT_VS_DEV_AHEAD/-$FEAT_VS_DEV_BEHIND | $LAST_COMMIT"
|
|
169
|
-
fi
|
|
170
|
-
done
|
|
171
71
|
```
|
|
172
72
|
|
|
173
73
|
**Si MAIN_AHEAD > 0 (main a des commits absents de develop):**
|
|
174
74
|
```bash
|
|
175
|
-
|
|
176
|
-
git log develop..main --oneline
|
|
75
|
+
# Lister les commits divergents
|
|
76
|
+
git log origin/develop..origin/main --oneline
|
|
177
77
|
```
|
|
178
78
|
|
|
179
79
|
### Version
|
|
@@ -232,150 +132,70 @@ done
|
|
|
232
132
|
## Affichage
|
|
233
133
|
|
|
234
134
|
```
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
135
|
+
================================================================================
|
|
136
|
+
GITFLOW STATUS
|
|
137
|
+
================================================================================
|
|
238
138
|
|
|
239
139
|
BRANCHE: {branch} ({type}) | {clean|dirty}
|
|
240
140
|
VERSION: {version} ({source})
|
|
241
|
-
REMOTE: {UP-TO-DATE|AHEAD N|BEHIND N|DIVERGED|NO REMOTE}
|
|
242
|
-
|
|
243
|
-
┌──────────────────────────────────────────────────────────────────────────────┐
|
|
244
|
-
│ BRANCHES │
|
|
245
|
-
├──────────────────────────────────────────────────────────────────────────────┤
|
|
246
|
-
│ LOCALES ({n}) │
|
|
247
|
-
│ ──────────────────────────────────────────────────────────────────────────── │
|
|
248
|
-
│ Branch │ Commit │ Date │ Message │
|
|
249
|
-
│ ─────────────────────────────────────────────────────────────────────────────│
|
|
250
|
-
│ * develop │ 8e8069d │ 2026-01-17 │ fix(ci): use NPM_TOKEN... │
|
|
251
|
-
│ main │ dd0cb2a │ 2026-01-17 │ chore(ci): update pipeline... │
|
|
252
|
-
│ release/v1.5.1 │ 10d2c58 │ 2026-01-17 │ chore: bump version to 1.5.1 │
|
|
253
|
-
│ │
|
|
254
|
-
│ REMOTE origin ({n}) │
|
|
255
|
-
│ ──────────────────────────────────────────────────────────────────────────── │
|
|
256
|
-
│ origin/develop │ 8e8069d │ 2026-01-17 │ fix(ci): use NPM_TOKEN... │
|
|
257
|
-
│ origin/main │ 91d0986 │ 2026-01-16 │ feat(license): add license... │
|
|
258
|
-
│ │
|
|
259
|
-
│ WORKTREES ({n}) │
|
|
260
|
-
│ ──────────────────────────────────────────────────────────────────────────── │
|
|
261
|
-
│ 01-Main │ main │ dd0cb2a │
|
|
262
|
-
│ 02-Develop │ develop │ 8e8069d (current) │
|
|
263
|
-
│ releases/v1.4.2 │ release/v1.4.2 │ a45f239 │
|
|
264
|
-
└──────────────────────────────────────────────────────────────────────────────┘
|
|
265
|
-
|
|
266
|
-
┌──────────────────────────────────────────────────────────────────────────────┐
|
|
267
|
-
│ TAGS ({n} total) │
|
|
268
|
-
├──────────────────────────────────────────────────────────────────────────────┤
|
|
269
|
-
│ Tag │ Date │ Message │ Branches │
|
|
270
|
-
│ ─────────────────────────────────────────────────────────────────────────────│
|
|
271
|
-
│ v1.5.2 │ 2026-01-17 │ Release v1.5.2 - Azure DevOps... │ main │
|
|
272
|
-
│ v1.5.1 │ 2026-01-17 │ Release v1.5.1 - Fix init... │ main │
|
|
273
|
-
│ v1.5.0 │ 2026-01-17 │ Release v1.5.0 - Project scaf... │ develop, main │
|
|
274
|
-
│ v1.4.1 │ 2026-01-17 │ Release v1.4.1 - Patch release │ develop, main │
|
|
275
|
-
│ v1.4.0 │ 2026-01-16 │ Release v1.4.0 │ develop, main │
|
|
276
|
-
│ │
|
|
277
|
-
│ DERNIERE VERSION PAR BRANCHE │
|
|
278
|
-
│ main: v1.5.2 (+2 commits depuis ce tag) │
|
|
279
|
-
│ develop: v1.5.0 (+10 commits depuis ce tag) │
|
|
280
|
-
│ │
|
|
281
|
-
│ Legende: "+N commits" = nombre de changements faits apres ce tag │
|
|
282
|
-
└──────────────────────────────────────────────────────────────────────────────┘
|
|
283
141
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
├──────────────────────────────────────────────────────────────────────────────┤
|
|
287
|
-
│ DEVELOP vs MAIN (Production) │
|
|
288
|
-
│ ──────────────────────────────────────────────────────────────────────────── │
|
|
289
|
-
│ │
|
|
290
|
-
│ develop: {N} commits prets a publier en production │
|
|
291
|
-
│ (changements sur develop non encore sur main) │
|
|
292
|
-
│ │
|
|
293
|
-
│ main: {N} commits a recuperer dans develop │
|
|
294
|
-
│ (changements sur main non encore sur develop) │
|
|
295
|
-
│ │
|
|
296
|
-
│ ETAT: {message selon situation} │
|
|
297
|
-
│ ✓ SYNCHRONISE = develop et main sont identiques │
|
|
298
|
-
│ ℹ️ A PUBLIER = develop a des changements prets pour une release │
|
|
299
|
-
│ ⚠️ DESYNCHRONISE = main a des commits non recuperes (action requise) │
|
|
300
|
-
│ │
|
|
301
|
-
│ {Si main a des commits non recuperes:} │
|
|
302
|
-
│ ⚠️ ATTENTION: {N} changements sur main non recuperes dans develop! │
|
|
303
|
-
│ ───────────────────────────────────────────────────────────────────────── │
|
|
304
|
-
│ Ces commits sont sur main mais absents de develop: │
|
|
305
|
-
│ dd0cb2a chore(ci): update pipeline to use NPM_TOKEN variable │
|
|
306
|
-
│ 3db14b6 Merge pull request 31 from release/v1.5.2 into main │
|
|
307
|
-
│ │
|
|
308
|
-
│ → ACTION: Recuperer ces changements avec: git merge main │
|
|
309
|
-
│ │
|
|
310
|
-
│ RELEASES EN COURS │
|
|
311
|
-
│ ──────────────────────────────────────────────────────────────────────────── │
|
|
312
|
-
│ Branch │ vs develop │ vs main │ Status │
|
|
313
|
-
│ ─────────────────────────────────────────────────────────────────────────────│
|
|
314
|
-
│ release/v1.5.1 │ 0 a publier/25 a │ 0 a publier/28 a │ TERMINEE ✓ │
|
|
315
|
-
│ │ recuperer │ recuperer │ (supprimable) │
|
|
316
|
-
│ release/v1.4.2 │ 0 a publier/26 a │ 0 a publier/29 a │ TERMINEE ✓ │
|
|
317
|
-
│ │ recuperer │ recuperer │ (supprimable) │
|
|
318
|
-
│ │
|
|
319
|
-
│ FEATURES (branches de fonctionnalites) │
|
|
320
|
-
│ ──────────────────────────────────────────────────────────────────────────── │
|
|
321
|
-
│ feature/xxx: {N} commits a publier / {N} a recuperer de develop │
|
|
322
|
-
│ Dernier: {message du dernier commit} │
|
|
323
|
-
└──────────────────────────────────────────────────────────────────────────────┘
|
|
142
|
+
REMOTE SYNC
|
|
143
|
+
vs origin/{branch}: {UP-TO-DATE|AHEAD N|BEHIND N|DIVERGED|NO REMOTE}
|
|
324
144
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
│ │
|
|
331
|
-
│ BRANCHES AVEC MIGRATIONS │
|
|
332
|
-
│ ──────────────────────────────────────────────────────────────────────────── │
|
|
333
|
-
│ feature/add-users +1 migration (AddUsersTable) Conflit: NON │
|
|
334
|
-
│ feature/add-orders +1 migration (AddOrdersTable) Conflit: NON │
|
|
335
|
-
│ feature/add-products +2 migrations Conflit: OUI ⚠️ │
|
|
336
|
-
│ │
|
|
337
|
-
│ ORDRE DE MERGE RECOMMANDE: │
|
|
338
|
-
│ 1. feature/add-users (independant) │
|
|
339
|
-
│ 2. feature/add-orders (independant) │
|
|
340
|
-
│ 3. feature/add-products (rebase requis apres #1 et #2) │
|
|
341
|
-
└──────────────────────────────────────────────────────────────────────────────┘
|
|
145
|
+
--------------------------------------------------------------------------------
|
|
146
|
+
SYNC DEVELOP <-> MAIN
|
|
147
|
+
--------------------------------------------------------------------------------
|
|
148
|
+
develop → main: +{DEVELOP_AHEAD} commits {message}
|
|
149
|
+
main → develop: +{MAIN_AHEAD} commits {message}
|
|
342
150
|
|
|
343
|
-
|
|
151
|
+
{Si DEVELOP_AHEAD > 0 et MAIN_AHEAD == 0:}
|
|
152
|
+
✓ Normal: develop a {N} commits prets a releaser
|
|
153
|
+
→ Action: /gitflow:10-start release
|
|
344
154
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
══════════════════════════════════════════════════════════════════════════════
|
|
155
|
+
{Si MAIN_AHEAD > 0:}
|
|
156
|
+
⚠️ ATTENTION: main contient {N} commits absents de develop!
|
|
348
157
|
|
|
349
|
-
|
|
350
|
-
{
|
|
158
|
+
Commits sur main non merges dans develop:
|
|
159
|
+
{git log origin/develop..origin/main --oneline}
|
|
351
160
|
|
|
352
|
-
|
|
161
|
+
Causes possibles:
|
|
162
|
+
- Hotfix non merge back dans develop
|
|
163
|
+
- Commit direct sur main (non recommande)
|
|
164
|
+
- Release mal finalisee
|
|
353
165
|
|
|
354
|
-
|
|
355
|
-
git merge main
|
|
166
|
+
→ Actions:
|
|
167
|
+
1. Merger main dans develop: git merge origin/main
|
|
168
|
+
2. Ou via release: /gitflow:10-start release (reset main)
|
|
356
169
|
|
|
357
|
-
|
|
358
|
-
|
|
170
|
+
{Si DEVELOP_AHEAD == 0 et MAIN_AHEAD == 0:}
|
|
171
|
+
✓ Synchronise: develop et main sont identiques
|
|
172
|
+
--------------------------------------------------------------------------------
|
|
359
173
|
|
|
360
|
-
|
|
361
|
-
/gitflow:finish feature/add-users
|
|
174
|
+
DERNIER TAG: {tag}
|
|
362
175
|
|
|
363
|
-
|
|
364
|
-
|
|
176
|
+
EF CORE (branche courante)
|
|
177
|
+
Migrations: {total} total, {pending} pending
|
|
178
|
+
[Pending] {liste}
|
|
365
179
|
|
|
366
|
-
|
|
367
|
-
|
|
180
|
+
--------------------------------------------------------------------------------
|
|
181
|
+
BRANCHES ACTIVES ({features} features, {releases} releases, {hotfixes} hotfixes)
|
|
182
|
+
--------------------------------------------------------------------------------
|
|
183
|
+
{Si branches actives avec migrations:}
|
|
184
|
+
feature/add-users +1 migration (AddUsersTable) Conflit: NON
|
|
185
|
+
feature/add-orders +1 migration (AddOrdersTable) Conflit: NON
|
|
186
|
+
feature/add-products +2 migrations (AddProducts, AddFK) Conflit: OUI
|
|
368
187
|
|
|
369
|
-
|
|
370
|
-
/
|
|
188
|
+
ORDRE DE MERGE RECOMMANDE:
|
|
189
|
+
1. feature/add-users (independant)
|
|
190
|
+
2. feature/add-orders (independant)
|
|
191
|
+
3. feature/add-products (conflit ModelSnapshot - rebase requis)
|
|
192
|
+
--------------------------------------------------------------------------------
|
|
371
193
|
|
|
372
|
-
|
|
373
|
-
/gitflow:commit "description des changements"
|
|
374
|
-
|
|
375
|
-
↑ Envoyer develop vers le serveur (5 commits non publies)
|
|
376
|
-
/gitflow:sync develop
|
|
194
|
+
PLANS: {n} active | OPERATIONS: {none|rebase|merge} | RISKS: {liste}
|
|
377
195
|
|
|
378
|
-
|
|
196
|
+
================================================================================
|
|
197
|
+
Actions: /gitflow:13-sync | /gitflow:14-rebase | /gitflow:3-commit | /gitflow:4-plan
|
|
198
|
+
================================================================================
|
|
379
199
|
```
|
|
380
200
|
|
|
381
201
|
---
|