3.2 KiB
Workflow ideale per lavorare su un task
1. Assicurarsi di essere aggiornati
Prima di iniziare a lavorare:
git fetch origin
git status
Se la tua branch locale è dietro rispetto a origin/<branch>:
git merge origin/<branch>
# oppure, se sai cosa fai:
# git pull
Esempio, se lavori su develop:
git checkout develop
git fetch origin
git merge origin/develop
Nota:
git pull=git fetch+git merge(vedi file dedicato).
2. Creare (o spostarsi su) la branch di lavoro
Nel modello standard, tipicamente:
- branch lunga vita:
master,development - branch di feature:
feature/<nome-breve>
Esempio nuova feature:
git checkout development
git pull origin development # se preferisci pull qui
git checkout -b feature/nuovo-report
Ora sei su feature/nuovo-report e puoi lavorare.
3. Modificare i file e controllare lo stato
Dopo aver modificato il codice:
git status
Esempio:
On branch feature/nuovo-report
Changes not staged for commit:
modified: src/report.py
Untracked files:
docs/spec-report.md
4. Aggiungere i file allo staging (git add)
Aggiungi solo i file che devono entrare nel commit:
git add src/report.py docs/spec-report.md
Per aggiungere tutte le modifiche tracciate e i nuovi file:
git add .
# oppure
git add -A
Controlla:
git status
Esempio:
Changes to be committed:
modified: src/report.py
new file: docs/spec-report.md
5. Creare un commit (git commit)
Usiamo messaggi brevi e descrittivi in inglese/italiano coerenti.
git commit -m "Aggiunge report mensile con nuovo layout"
Oppure, per messaggi multi-riga:
git commit
# si apre l'editor configurato
Struttura consigliata:
Breve descrizione al presente
- dettaglio 1
- dettaglio 2
6. Pubblicare la branch sul server (git push)
Per la prima volta su una branch nuova:
git push -u origin feature/nuovo-report
Il flag -u imposta il tracking
Altrimenti è possibile utilizzare --set-upstream
in futuro basterà lanciare:
git push
Esempio di output:
Counting objects: 7, done.
Delta compression using up to 8 threads.
...
To https://www.meridianaitalia.eu/Meridiana/progetto/repo.git
* [new branch] feature/nuovo-report -> feature/nuovo-report
Branch 'feature/nuovo-report' set up to track remote branch 'feature/nuovo-report' from 'origin'.
7. Creare la Merge Request / Pull Request
Dal sistema di gestione (nel nostro caso Gogs):
- Scegli come source branch:
feature/nuovo-report - Scegli come target branch: di solito
development - Assegna revisori, descrivi cosa fa la feature
- Una volta approvata si fa il merge in
development
Riepilogo rapido workflow
# una volta che hai clonato il repo
git checkout development
git pull origin development
git checkout -b feature/nuovo-report
# ...modifichi file...
git status
git add file1 file2
git commit -m "Messaggio chiaro"
git push -u origin feature/nuovo-report
# poi apri la MR/PR da interfaccia web