Controllo versioni
Obiettivo: mantenere codice tracciabile, collaborativo e riproducibile.
Creare un branch Dev
Creazione branch partendo da main
git checkout main # Passa al branch main locale
git fetch origin # Aggiorna i dati dal Repository Remoto > Locale
git pull origin main # Carica i dati del main sul repositorio locale
git checkout -b dev origin/main # Crea il branch dev da main remoto e si sposta su dev
Cancellare Uncommit change
se siamo in questa situazione e abbiamo un uncommit changed che non ci interessa salvare la modifica, possiamo tornare indietro facendo questo commando.
git log --oneline
2d86406 (HEAD -> Dev, origin/main, origin/HEAD, main) Update immagini PO
220fa89 Aggiunte immagini PO_MTR_Motor
c7303f2 Aggiunte immagini PO_YVM_Mono e PO_YVB_Bistable
9b79e3e Aggiunte immagini PO_YVM_Mono e PO_YVB_Bistable
f851a13 Aggiunta immagine PO_INVx_ACS
Andiamo a recuperare ultimo commit e scriviamo nella console
git reset --hard 2d86406
Cancellare ultimo commit
Se ci siamo sbagliati o ci siamo dimenticati di fare un modfica invece di rifare un altro commit si puo riaprire ultimo commit e riscriverlo.
git revert HEAD
Cancellare branch
git branch -d Dev
Aggiornare il branch Dev
Carica dati del main remoto sul branch Dev
git checkout main # Passa al branch locale "main"
git fetch # Aggiorna i dati dal Repository Remoto > Locale
git checkout dev # Passa al branch locale 'dev'
git pull # Carica i dati del Repository Locale > Workspace
Verifica stato
git status
git log --oneline --graph --decorate -n 10
Note
- Evita
--force
Merge branch Dev sul Main
Procedura
git checkout main
git pull origin main
git merge dev -m "Merge dev in main: <breve descrizione release>"
Reset Repository Locale
Procedura
Attenzione questo commando cancellera ogni modifica eseguita in locale da usare solo se non ti interessa le modifiche che hai effetuato nel tuo workspace
git checkout main
git reset --hard origin/master
Risoluzione conflitti
Quando accade
- Rebase o merge tra branch divergenti
- Modifiche concorrenti sulle stesse righe
Passi generali
# Dopo un merge/rebase che segnala conflitti
git status
# Apri i file con marker:
# <<<<<<< HEAD
# ...tua versione...
# =======
# ...versione remota...
# >>>>>>> branch/altro
# Modifica manualmente mantenendo SOLO il risultato finale
git add <file_risolto>
git merge --continue # se merge
# oppure
git rebase --continue # se rebase
Se serve annullare
git merge --abort # durante un merge
git rebase --abort # durante un rebase
Verifica finale
git diff --check
git log --oneline -n 5
