Vai al contenuto

Controllo versioni

Obiettivo: mantenere codice tracciabile, collaborativo e riproducibile.

Creare un branch Dev

Creazione branch partendo da main

Threshold

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

Threshold

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
cosi ritorneremo al punto del commit segnato.


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

Threshold

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

Threshold

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