@atlashub/smartstack-cli 1.5.0 → 1.5.2
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/.documentation/agents.html +920 -916
- package/.documentation/apex.html +1022 -1018
- package/.documentation/business-analyse.html +1505 -1501
- package/.documentation/commands.html +684 -680
- package/.documentation/css/styles.css +2168 -2168
- package/.documentation/efcore.html +2509 -2505
- package/.documentation/gitflow.html +2622 -2618
- package/.documentation/hooks.html +417 -413
- package/.documentation/index.html +327 -323
- package/.documentation/init.html +565 -0
- package/.documentation/installation.html +548 -462
- package/.documentation/js/app.js +794 -794
- package/.documentation/ralph-loop.html +534 -530
- package/.documentation/test-web.html +517 -513
- package/config/default-config.json +86 -86
- package/config/settings.json +53 -53
- package/config/settings.local.example.json +16 -16
- package/dist/index.js +18 -8
- package/dist/index.js.map +1 -1
- package/package.json +88 -88
- package/templates/agents/action.md +36 -36
- package/templates/agents/efcore/conflicts.md +84 -84
- package/templates/agents/efcore/db-deploy.md +51 -51
- package/templates/agents/efcore/db-reset.md +59 -59
- package/templates/agents/efcore/db-seed.md +56 -56
- package/templates/agents/efcore/db-status.md +64 -64
- package/templates/agents/efcore/migration.md +85 -85
- package/templates/agents/efcore/rebase-snapshot.md +62 -62
- package/templates/agents/efcore/scan.md +90 -90
- package/templates/agents/efcore/squash.md +67 -67
- package/templates/agents/explore-codebase.md +65 -65
- package/templates/agents/explore-docs.md +97 -97
- package/templates/agents/fix-grammar.md +49 -49
- package/templates/agents/gitflow/abort.md +45 -45
- package/templates/agents/gitflow/cleanup.md +85 -85
- package/templates/agents/gitflow/commit.md +40 -40
- package/templates/agents/gitflow/exec.md +48 -48
- package/templates/agents/gitflow/finish.md +92 -92
- package/templates/agents/gitflow/init.md +139 -139
- package/templates/agents/gitflow/merge.md +62 -62
- package/templates/agents/gitflow/plan.md +42 -42
- package/templates/agents/gitflow/pr.md +78 -78
- package/templates/agents/gitflow/review.md +49 -49
- package/templates/agents/gitflow/start.md +61 -61
- package/templates/agents/gitflow/status.md +32 -32
- package/templates/agents/snipper.md +36 -36
- package/templates/agents/websearch.md +46 -46
- package/templates/commands/_resources/formatting-guide.md +124 -124
- package/templates/commands/ai-prompt.md +315 -315
- package/templates/commands/apex/1-analyze.md +100 -100
- package/templates/commands/apex/2-plan.md +145 -145
- package/templates/commands/apex/3-execute.md +171 -171
- package/templates/commands/apex/4-examine.md +116 -116
- package/templates/commands/apex/5-tasks.md +209 -209
- package/templates/commands/apex.md +76 -76
- package/templates/commands/application/create.md +362 -362
- package/templates/commands/application/templates-backend.md +463 -463
- package/templates/commands/application/templates-frontend.md +517 -517
- package/templates/commands/application/templates-i18n.md +478 -478
- package/templates/commands/application/templates-seed.md +362 -362
- package/templates/commands/application.md +303 -303
- package/templates/commands/business-analyse/0-orchestrate.md +640 -640
- package/templates/commands/business-analyse/1-init.md +269 -269
- package/templates/commands/business-analyse/2-discover.md +520 -520
- package/templates/commands/business-analyse/3-analyse.md +408 -408
- package/templates/commands/business-analyse/4-specify.md +598 -598
- package/templates/commands/business-analyse/5-validate.md +326 -326
- package/templates/commands/business-analyse/6-handoff.md +746 -746
- package/templates/commands/business-analyse/7-doc-html.md +602 -602
- package/templates/commands/business-analyse/bug.md +325 -325
- package/templates/commands/business-analyse/change-request.md +368 -368
- package/templates/commands/business-analyse/hotfix.md +200 -200
- package/templates/commands/business-analyse.md +640 -640
- package/templates/commands/controller/create.md +216 -216
- package/templates/commands/controller/postman-templates.md +528 -528
- package/templates/commands/controller/templates.md +600 -600
- package/templates/commands/controller.md +337 -337
- package/templates/commands/create/agent.md +138 -138
- package/templates/commands/create/command.md +166 -166
- package/templates/commands/create/hook.md +234 -234
- package/templates/commands/create/plugin.md +329 -329
- package/templates/commands/create/project.md +507 -507
- package/templates/commands/create/skill.md +199 -199
- package/templates/commands/create.md +220 -220
- package/templates/commands/debug.md +95 -95
- package/templates/commands/documentation/module.md +202 -202
- package/templates/commands/documentation/templates.md +432 -432
- package/templates/commands/documentation.md +190 -190
- package/templates/commands/efcore/_env-check.md +153 -153
- package/templates/commands/efcore/conflicts.md +186 -186
- package/templates/commands/efcore/db-deploy.md +193 -193
- package/templates/commands/efcore/db-reset.md +426 -426
- package/templates/commands/efcore/db-seed.md +326 -326
- package/templates/commands/efcore/db-status.md +226 -226
- package/templates/commands/efcore/migration.md +400 -400
- package/templates/commands/efcore/rebase-snapshot.md +264 -264
- package/templates/commands/efcore/scan.md +198 -198
- package/templates/commands/efcore/squash.md +298 -298
- package/templates/commands/efcore.md +224 -224
- package/templates/commands/epct.md +69 -69
- package/templates/commands/explain.md +186 -186
- package/templates/commands/explore.md +45 -45
- package/templates/commands/feature-full.md +267 -267
- package/templates/commands/gitflow/1-init.md +1038 -1038
- package/templates/commands/gitflow/10-start.md +768 -768
- package/templates/commands/gitflow/11-finish.md +457 -457
- package/templates/commands/gitflow/12-cleanup.md +276 -276
- package/templates/commands/gitflow/13-sync.md +216 -216
- package/templates/commands/gitflow/14-rebase.md +251 -251
- package/templates/commands/gitflow/2-status.md +277 -277
- package/templates/commands/gitflow/3-commit.md +344 -344
- package/templates/commands/gitflow/4-plan.md +145 -145
- package/templates/commands/gitflow/5-exec.md +147 -147
- package/templates/commands/gitflow/6-abort.md +344 -344
- package/templates/commands/gitflow/7-pull-request.md +453 -355
- package/templates/commands/gitflow/8-review.md +240 -176
- package/templates/commands/gitflow/9-merge.md +451 -365
- package/templates/commands/gitflow.md +128 -128
- package/templates/commands/implement.md +663 -663
- package/templates/commands/init.md +567 -562
- package/templates/commands/mcp-integration.md +330 -330
- package/templates/commands/notification.md +129 -129
- package/templates/commands/oneshot.md +57 -57
- package/templates/commands/quick-search.md +72 -72
- package/templates/commands/ralph-loop/cancel-ralph.md +18 -18
- package/templates/commands/ralph-loop/help.md +126 -126
- package/templates/commands/ralph-loop/ralph-loop.md +18 -18
- package/templates/commands/review.md +106 -106
- package/templates/commands/utils/test-web-config.md +160 -160
- package/templates/commands/utils/test-web.md +151 -151
- package/templates/commands/validate.md +233 -233
- package/templates/commands/workflow.md +193 -193
- package/templates/gitflow/config.json +138 -138
- package/templates/hooks/ef-migration-check.md +139 -139
- package/templates/hooks/hooks.json +25 -25
- package/templates/hooks/stop-hook.sh +177 -177
- package/templates/skills/ai-prompt/SKILL.md +778 -778
- package/templates/skills/application/SKILL.md +563 -563
- package/templates/skills/application/templates-backend.md +450 -450
- package/templates/skills/application/templates-frontend.md +531 -531
- package/templates/skills/application/templates-i18n.md +520 -520
- package/templates/skills/application/templates-seed.md +647 -647
- package/templates/skills/business-analyse/SKILL.md +191 -191
- package/templates/skills/business-analyse/questionnaire.md +283 -283
- package/templates/skills/business-analyse/templates-frd.md +477 -477
- package/templates/skills/business-analyse/templates-react.md +580 -580
- package/templates/skills/controller/SKILL.md +240 -240
- package/templates/skills/controller/postman-templates.md +614 -614
- package/templates/skills/controller/templates.md +1468 -1468
- package/templates/skills/documentation/SKILL.md +133 -133
- package/templates/skills/documentation/templates.md +476 -476
- package/templates/skills/feature-full/SKILL.md +838 -838
- package/templates/skills/notification/SKILL.md +555 -555
- package/templates/skills/ui-components/SKILL.md +870 -870
- package/templates/skills/workflow/SKILL.md +582 -582
- package/templates/test-web/api-health.json +38 -38
- package/templates/test-web/minimal.json +19 -19
- package/templates/test-web/npm-package.json +46 -46
- package/templates/test-web/seo-check.json +54 -54
|
@@ -1,216 +1,216 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Phase 13 - Sync local branch with remote (push/pull)
|
|
3
|
-
agent: gitflow-status
|
|
4
|
-
model: haiku
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Phase 13: SYNC - Synchronize with Remote
|
|
8
|
-
|
|
9
|
-
Synchronise la branche locale avec sa branche remote tracking.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## STEP 1: Fetch et analyse
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
# Fetch pour avoir les infos a jour
|
|
17
|
-
git fetch --quiet 2>/dev/null
|
|
18
|
-
|
|
19
|
-
BRANCH=$(git branch --show-current)
|
|
20
|
-
UPSTREAM=$(git rev-parse --abbrev-ref @{upstream} 2>/dev/null)
|
|
21
|
-
|
|
22
|
-
echo "Branche locale: $BRANCH"
|
|
23
|
-
echo "Remote tracking: $UPSTREAM"
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## STEP 2: Determiner l'action necessaire
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
if [ -z "$UPSTREAM" ]; then
|
|
32
|
-
# Pas de remote tracking - proposer push initial
|
|
33
|
-
ACTION="PUSH_NEW"
|
|
34
|
-
echo "Status: NO REMOTE - branche non pushee"
|
|
35
|
-
else
|
|
36
|
-
LOCAL=$(git rev-parse @)
|
|
37
|
-
REMOTE=$(git rev-parse @{upstream})
|
|
38
|
-
BASE=$(git merge-base @ @{upstream})
|
|
39
|
-
|
|
40
|
-
if [ "$LOCAL" = "$REMOTE" ]; then
|
|
41
|
-
ACTION="UP_TO_DATE"
|
|
42
|
-
echo "Status: UP-TO-DATE - rien a faire"
|
|
43
|
-
elif [ "$LOCAL" = "$BASE" ]; then
|
|
44
|
-
BEHIND=$(git rev-list --count @..@{upstream})
|
|
45
|
-
ACTION="PULL"
|
|
46
|
-
echo "Status: BEHIND $BEHIND commits - pull needed"
|
|
47
|
-
elif [ "$REMOTE" = "$BASE" ]; then
|
|
48
|
-
AHEAD=$(git rev-list --count @{upstream}..@)
|
|
49
|
-
ACTION="PUSH"
|
|
50
|
-
echo "Status: AHEAD $AHEAD commits - push needed"
|
|
51
|
-
else
|
|
52
|
-
AHEAD=$(git rev-list --count @{upstream}..@)
|
|
53
|
-
BEHIND=$(git rev-list --count @..@{upstream})
|
|
54
|
-
ACTION="DIVERGED"
|
|
55
|
-
echo "Status: DIVERGED +$AHEAD/-$BEHIND - pull --rebase needed"
|
|
56
|
-
fi
|
|
57
|
-
fi
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## STEP 3: Executer l'action
|
|
63
|
-
|
|
64
|
-
### Si UP_TO_DATE
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
================================================================================
|
|
68
|
-
ALREADY SYNCHRONIZED
|
|
69
|
-
================================================================================
|
|
70
|
-
|
|
71
|
-
Branche: {branch}
|
|
72
|
-
Remote: {upstream}
|
|
73
|
-
Status: UP-TO-DATE
|
|
74
|
-
|
|
75
|
-
Rien a faire.
|
|
76
|
-
|
|
77
|
-
================================================================================
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Si PUSH_NEW (pas de remote)
|
|
81
|
-
|
|
82
|
-
```javascript
|
|
83
|
-
AskUserQuestion({
|
|
84
|
-
questions: [{
|
|
85
|
-
question: "Push this branch to remote for the first time?",
|
|
86
|
-
header: "Push new",
|
|
87
|
-
options: [
|
|
88
|
-
{ label: "Yes, push", description: "git push -u origin {branch}" },
|
|
89
|
-
{ label: "No, cancel", description: "Keep local only" }
|
|
90
|
-
],
|
|
91
|
-
multiSelect: false
|
|
92
|
-
}]
|
|
93
|
-
})
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
**Si Yes:**
|
|
97
|
-
```bash
|
|
98
|
-
git push -u origin "$BRANCH"
|
|
99
|
-
echo "Branche pushee et tracking configure"
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### Si PULL
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
echo "Pulling $BEHIND commits from remote..."
|
|
106
|
-
git pull --ff-only
|
|
107
|
-
|
|
108
|
-
if [ $? -ne 0 ]; then
|
|
109
|
-
echo "WARNING: Fast-forward not possible, trying rebase..."
|
|
110
|
-
git pull --rebase
|
|
111
|
-
fi
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### Si PUSH
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
echo "Pushing $AHEAD commits to remote..."
|
|
118
|
-
git push
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### Si DIVERGED
|
|
122
|
-
|
|
123
|
-
```javascript
|
|
124
|
-
AskUserQuestion({
|
|
125
|
-
questions: [{
|
|
126
|
-
question: "Branch has diverged from remote. How to resolve?",
|
|
127
|
-
header: "Diverged",
|
|
128
|
-
options: [
|
|
129
|
-
{ label: "Pull --rebase (recommended)", description: "Rebase local commits on top of remote" },
|
|
130
|
-
{ label: "Force push", description: "Overwrite remote with local (DANGEROUS)" },
|
|
131
|
-
{ label: "Cancel", description: "Review manually first" }
|
|
132
|
-
],
|
|
133
|
-
multiSelect: false
|
|
134
|
-
}]
|
|
135
|
-
})
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
**Si Pull --rebase:**
|
|
139
|
-
```bash
|
|
140
|
-
git pull --rebase
|
|
141
|
-
if [ $? -ne 0 ]; then
|
|
142
|
-
echo "CONFLITS DETECTES - resolvez puis: git rebase --continue"
|
|
143
|
-
exit 1
|
|
144
|
-
fi
|
|
145
|
-
git push
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**Si Force push:**
|
|
149
|
-
```bash
|
|
150
|
-
# Double confirmation pour force push
|
|
151
|
-
echo "WARNING: Force push va ecraser les commits distants!"
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
```javascript
|
|
155
|
-
AskUserQuestion({
|
|
156
|
-
questions: [{
|
|
157
|
-
question: "CONFIRM: Force push will overwrite remote commits. Are you sure?",
|
|
158
|
-
header: "Force push",
|
|
159
|
-
options: [
|
|
160
|
-
{ label: "Yes, force push", description: "I understand the risk" },
|
|
161
|
-
{ label: "No, cancel", description: "Abort operation" }
|
|
162
|
-
],
|
|
163
|
-
multiSelect: false
|
|
164
|
-
}]
|
|
165
|
-
})
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
git push --force-with-lease
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
## STEP 4: Verification
|
|
175
|
-
|
|
176
|
-
```bash
|
|
177
|
-
echo ""
|
|
178
|
-
echo "Verification post-sync..."
|
|
179
|
-
|
|
180
|
-
LOCAL=$(git rev-parse @)
|
|
181
|
-
REMOTE=$(git rev-parse @{upstream} 2>/dev/null)
|
|
182
|
-
|
|
183
|
-
if [ "$LOCAL" = "$REMOTE" ]; then
|
|
184
|
-
echo "SYNCHRONIZED"
|
|
185
|
-
else
|
|
186
|
-
echo "WARNING: Still not synchronized"
|
|
187
|
-
git status
|
|
188
|
-
fi
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
## Summary
|
|
194
|
-
|
|
195
|
-
```
|
|
196
|
-
================================================================================
|
|
197
|
-
SYNC COMPLETE
|
|
198
|
-
================================================================================
|
|
199
|
-
|
|
200
|
-
Branche: {branch}
|
|
201
|
-
Remote: origin/{branch}
|
|
202
|
-
Action: {PULL|PUSH|PUSH_NEW|REBASE}
|
|
203
|
-
Status: SYNCHRONIZED
|
|
204
|
-
|
|
205
|
-
================================================================================
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
## Codes sortie
|
|
211
|
-
|
|
212
|
-
| Code | Signification |
|
|
213
|
-
|------|---------------|
|
|
214
|
-
| 0 | Sync reussie |
|
|
215
|
-
| 1 | Conflits (rebase en cours) |
|
|
216
|
-
| 2 | Erreur reseau ou permission |
|
|
1
|
+
---
|
|
2
|
+
description: Phase 13 - Sync local branch with remote (push/pull)
|
|
3
|
+
agent: gitflow-status
|
|
4
|
+
model: haiku
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Phase 13: SYNC - Synchronize with Remote
|
|
8
|
+
|
|
9
|
+
Synchronise la branche locale avec sa branche remote tracking.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## STEP 1: Fetch et analyse
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Fetch pour avoir les infos a jour
|
|
17
|
+
git fetch --quiet 2>/dev/null
|
|
18
|
+
|
|
19
|
+
BRANCH=$(git branch --show-current)
|
|
20
|
+
UPSTREAM=$(git rev-parse --abbrev-ref @{upstream} 2>/dev/null)
|
|
21
|
+
|
|
22
|
+
echo "Branche locale: $BRANCH"
|
|
23
|
+
echo "Remote tracking: $UPSTREAM"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## STEP 2: Determiner l'action necessaire
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
if [ -z "$UPSTREAM" ]; then
|
|
32
|
+
# Pas de remote tracking - proposer push initial
|
|
33
|
+
ACTION="PUSH_NEW"
|
|
34
|
+
echo "Status: NO REMOTE - branche non pushee"
|
|
35
|
+
else
|
|
36
|
+
LOCAL=$(git rev-parse @)
|
|
37
|
+
REMOTE=$(git rev-parse @{upstream})
|
|
38
|
+
BASE=$(git merge-base @ @{upstream})
|
|
39
|
+
|
|
40
|
+
if [ "$LOCAL" = "$REMOTE" ]; then
|
|
41
|
+
ACTION="UP_TO_DATE"
|
|
42
|
+
echo "Status: UP-TO-DATE - rien a faire"
|
|
43
|
+
elif [ "$LOCAL" = "$BASE" ]; then
|
|
44
|
+
BEHIND=$(git rev-list --count @..@{upstream})
|
|
45
|
+
ACTION="PULL"
|
|
46
|
+
echo "Status: BEHIND $BEHIND commits - pull needed"
|
|
47
|
+
elif [ "$REMOTE" = "$BASE" ]; then
|
|
48
|
+
AHEAD=$(git rev-list --count @{upstream}..@)
|
|
49
|
+
ACTION="PUSH"
|
|
50
|
+
echo "Status: AHEAD $AHEAD commits - push needed"
|
|
51
|
+
else
|
|
52
|
+
AHEAD=$(git rev-list --count @{upstream}..@)
|
|
53
|
+
BEHIND=$(git rev-list --count @..@{upstream})
|
|
54
|
+
ACTION="DIVERGED"
|
|
55
|
+
echo "Status: DIVERGED +$AHEAD/-$BEHIND - pull --rebase needed"
|
|
56
|
+
fi
|
|
57
|
+
fi
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## STEP 3: Executer l'action
|
|
63
|
+
|
|
64
|
+
### Si UP_TO_DATE
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
================================================================================
|
|
68
|
+
ALREADY SYNCHRONIZED
|
|
69
|
+
================================================================================
|
|
70
|
+
|
|
71
|
+
Branche: {branch}
|
|
72
|
+
Remote: {upstream}
|
|
73
|
+
Status: UP-TO-DATE
|
|
74
|
+
|
|
75
|
+
Rien a faire.
|
|
76
|
+
|
|
77
|
+
================================================================================
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Si PUSH_NEW (pas de remote)
|
|
81
|
+
|
|
82
|
+
```javascript
|
|
83
|
+
AskUserQuestion({
|
|
84
|
+
questions: [{
|
|
85
|
+
question: "Push this branch to remote for the first time?",
|
|
86
|
+
header: "Push new",
|
|
87
|
+
options: [
|
|
88
|
+
{ label: "Yes, push", description: "git push -u origin {branch}" },
|
|
89
|
+
{ label: "No, cancel", description: "Keep local only" }
|
|
90
|
+
],
|
|
91
|
+
multiSelect: false
|
|
92
|
+
}]
|
|
93
|
+
})
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Si Yes:**
|
|
97
|
+
```bash
|
|
98
|
+
git push -u origin "$BRANCH"
|
|
99
|
+
echo "Branche pushee et tracking configure"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Si PULL
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
echo "Pulling $BEHIND commits from remote..."
|
|
106
|
+
git pull --ff-only
|
|
107
|
+
|
|
108
|
+
if [ $? -ne 0 ]; then
|
|
109
|
+
echo "WARNING: Fast-forward not possible, trying rebase..."
|
|
110
|
+
git pull --rebase
|
|
111
|
+
fi
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Si PUSH
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
echo "Pushing $AHEAD commits to remote..."
|
|
118
|
+
git push
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Si DIVERGED
|
|
122
|
+
|
|
123
|
+
```javascript
|
|
124
|
+
AskUserQuestion({
|
|
125
|
+
questions: [{
|
|
126
|
+
question: "Branch has diverged from remote. How to resolve?",
|
|
127
|
+
header: "Diverged",
|
|
128
|
+
options: [
|
|
129
|
+
{ label: "Pull --rebase (recommended)", description: "Rebase local commits on top of remote" },
|
|
130
|
+
{ label: "Force push", description: "Overwrite remote with local (DANGEROUS)" },
|
|
131
|
+
{ label: "Cancel", description: "Review manually first" }
|
|
132
|
+
],
|
|
133
|
+
multiSelect: false
|
|
134
|
+
}]
|
|
135
|
+
})
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Si Pull --rebase:**
|
|
139
|
+
```bash
|
|
140
|
+
git pull --rebase
|
|
141
|
+
if [ $? -ne 0 ]; then
|
|
142
|
+
echo "CONFLITS DETECTES - resolvez puis: git rebase --continue"
|
|
143
|
+
exit 1
|
|
144
|
+
fi
|
|
145
|
+
git push
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Si Force push:**
|
|
149
|
+
```bash
|
|
150
|
+
# Double confirmation pour force push
|
|
151
|
+
echo "WARNING: Force push va ecraser les commits distants!"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
```javascript
|
|
155
|
+
AskUserQuestion({
|
|
156
|
+
questions: [{
|
|
157
|
+
question: "CONFIRM: Force push will overwrite remote commits. Are you sure?",
|
|
158
|
+
header: "Force push",
|
|
159
|
+
options: [
|
|
160
|
+
{ label: "Yes, force push", description: "I understand the risk" },
|
|
161
|
+
{ label: "No, cancel", description: "Abort operation" }
|
|
162
|
+
],
|
|
163
|
+
multiSelect: false
|
|
164
|
+
}]
|
|
165
|
+
})
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
git push --force-with-lease
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## STEP 4: Verification
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
echo ""
|
|
178
|
+
echo "Verification post-sync..."
|
|
179
|
+
|
|
180
|
+
LOCAL=$(git rev-parse @)
|
|
181
|
+
REMOTE=$(git rev-parse @{upstream} 2>/dev/null)
|
|
182
|
+
|
|
183
|
+
if [ "$LOCAL" = "$REMOTE" ]; then
|
|
184
|
+
echo "SYNCHRONIZED"
|
|
185
|
+
else
|
|
186
|
+
echo "WARNING: Still not synchronized"
|
|
187
|
+
git status
|
|
188
|
+
fi
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Summary
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
================================================================================
|
|
197
|
+
SYNC COMPLETE
|
|
198
|
+
================================================================================
|
|
199
|
+
|
|
200
|
+
Branche: {branch}
|
|
201
|
+
Remote: origin/{branch}
|
|
202
|
+
Action: {PULL|PUSH|PUSH_NEW|REBASE}
|
|
203
|
+
Status: SYNCHRONIZED
|
|
204
|
+
|
|
205
|
+
================================================================================
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Codes sortie
|
|
211
|
+
|
|
212
|
+
| Code | Signification |
|
|
213
|
+
|------|---------------|
|
|
214
|
+
| 0 | Sync reussie |
|
|
215
|
+
| 1 | Conflits (rebase en cours) |
|
|
216
|
+
| 2 | Erreur reseau ou permission |
|