CodeGym /Corsi /JAVA 25 SELF /Strumenti professionali e risoluzione dei problemi

Strumenti professionali e risoluzione dei problemi

JAVA 25 SELF
Livello 25 , Lezione 4
Disponibile

Finora abbiamo considerato lo scenario ideale: scrivi il codice, fai i commit, crei una Pull Request. Ma nella vita reale spesso qualcosa va storto: puoi commettere un errore nel codice, fare un commit con un messaggio errato o semplicemente renderti conto di aver preso una direzione sbagliata. In questa lezione vedremo come risolvere i problemi più comuni.

1. Rollback — annullamento delle modifiche prima del commit

Scenario: hai modificato un file, ma ti sei accorto che tutte le tue revisioni non sono corrette e vuoi riportare rapidamente il file allo stato in cui era dopo l’ultimo commit.

Usa la funzione Rollback:

  1. Apri la scheda Commit.
  2. Trova nell’elenco il file modificato che vuoi «ripristinare».
  3. Fai clic su di esso con il tasto destro e scegli Rollback.

L’IDE ti avviserà che le modifiche andranno perse. Conferma, e il file tornerà immediatamente alla sua ultima versione salvata in Git. È il modo più semplice e sicuro per annullare le modifiche locali.

2. Reset — eliminazione dei commit locali

Scenario: hai fatto uno o più commit, ma non hai ancora eseguito il push. Hai capito che questi commit sono sbagliati e vuoi eliminarli completamente, come se non fossero mai esistiti.

Usa la funzione Reset:

  1. Apri la scheda Git -> Log per vedere la cronologia dei commit.
  2. Trova l’ultimo commit «buono» su cui vuoi tornare (quello che era prima di quelli errati).
  3. Fai clic su di esso con il tasto destro e scegli Reset Current Branch to Here....

Nella finestra che si apre ti verrà chiesto di scegliere la modalità di reset. La più drastica — Hard.

Attenzione! La modalità Hard elimina in modo irreversibile tutti i commit successivi a quello selezionato, nonché tutte le modifiche nel codice contenute in quei commit. Usala con grande cautela e solo per commit che nessuno ha ancora visto (quelli che non sono stati inviati su GitHub).

3. Cosa fare dopo il push?

Scenario: hai fatto il push e solo dopo hai notato un errore.

Non appena un commit arriva sul server remoto, diventa parte della cronologia condivisa del progetto. Tentare di riscrivere questa cronologia può creare enormi problemi per i tuoi colleghi. Immagina che abbiano già scaricato le tue modifiche e iniziato a lavorare sulla loro base.

La soluzione corretta e sicura:

Semplicemente crea un nuovo commit che corregge l’errore e invialo. È una pratica assolutamente normale. In questo modo la cronologia rimane onesta e chiara per tutti.

4. Uno sguardo al passato: uso avanzato del log

Conosciamo già la scheda Git -> Log, ma non è solo un elenco di commit: è un potente strumento per le indagini.

  • Hash del commit (Commit Hash): avrai sicuramente notato nel log una stringa di lettere e numeri, per esempio a1b2c3d. Questo hash è univoco e permette di riferirsi con precisione a qualsiasi punto nella cronologia del progetto. Raramente dovrai usarlo manualmente, ma è importante sapere che è l’identificatore univoco di ogni «istantanea» del tuo codice.
  • Puoi filtrare la cronologia per branch, autore, data o anche per parola nel messaggio del commit. Questo aiuta a trovare rapidamente chi e quando ha lavorato su una parte specifica della funzionalità.
  • Vuoi trovare il commit in cui è stata aggiunta o rimossa una riga specifica di codice? Nella finestra Log c’è un campo di ricerca che cerca non solo nei messaggi, ma anche nel contenuto delle modifiche stesse.
  • Fai clic con il tasto destro nei margini dell’editor di codice e seleziona Annotate with Git Blame. L’IDE mostrerà accanto a ogni riga chi e in quale commit l’ha modificata l’ultima volta. È incredibilmente utile per capire perché il codice è scritto proprio così.

5. Zona pericolosa: force push

Abbiamo stabilito che modificare i commit già inviati è una cattiva idea. Ma cosa succede se hai comunque modificato la tua cronologia locale (per esempio con Reset) e ora non coincide con la cronologia sul server? Quando provi a fare un normale push, Git restituirà un errore per proteggere la cronologia condivisa dalla riscrittura.

Per questi casi esiste l’opzione — force push (invio forzato). Questo comando dice al server: «Dimentica tutto quello che avevi. La mia versione locale della cronologia è l’unica corretta. Sostituisci la tua cronologia con la mia».

ATTENZIONE! Nel 99 % dei casi l’uso di force push nei progetti di team è una catastrofe. Può eliminare irreversibilmente commit che i tuoi colleghi hanno già scaricato e su cui stanno lavorando. È l’equivalente di strappare pagine da un libro di biblioteca condiviso e incollarci le proprie.

Quando è categoricamente VIETATO usare force push:

  • Su qualsiasi branch condiviso: main, develop, master. Mai.
  • Su qualsiasi branch su cui lavora qualcuno oltre a te.

L’unico scenario ammissibile:

Stai lavorando in una tua personale branch feature che nessuno ha ancora visto né usato. Hai fatto alcuni commit «sporchi», li hai inviati al server e poi hai deciso di «metterli in ordine» con Reset. In questo caso puoi fare un force push per aggiornare la tua branch sul server prima di creare la Pull Request.

Nell’IDE questa opzione è di solito nascosta dietro il pulsante Push. Gli sviluppatori dell’IDE l’hanno fatto intenzionalmente per evitare che tu la prema per sbaglio.

Se non sei sicuro al 100 %, non usare mai force push. È più sicuro creare un nuovo commit con le correzioni.

6. Aggiornare il progetto

Premi sempre Update Project sul branch main prima di iniziare a lavorare su una nuova attività. Questo ti eviterà molti futuri conflitti di merge e garantirà che tu inizi a lavorare con la versione più aggiornata del codice.

1
Compito
JAVA 25 SELF, livello 25, lezione 4
Bloccato
Avvio di un Sistema Complesso: Ordine di Inizializzazione 🔄
Avvio di un Sistema Complesso: Ordine di Inizializzazione 🔄
1
Compito
JAVA 25 SELF, livello 25, lezione 4
Bloccato
Portale Segreto: Gestione degli Errori di Autenticazione 💥
Portale Segreto: Gestione degli Errori di Autenticazione 💥
1
Sondaggio/quiz
Introduzione a Git e GitHub, livello 25, lezione 4
Non disponibile
Introduzione a Git e GitHub
Controllo di versione: lavorare con Git e GitHub
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION