Come posso facilmente sistemare un commit passato?

Come posso facilmente sistemare un commit passato?
Mentre lavorano su Git, gli sviluppatori apportano modifiche al progetto e li impegnano per salvare le modifiche alla cronologia dei registri. A volte, vogliono cambiare commit precedenti per correggere errori di digitazione o commit di aggiornamento. Git consente loro di sistemare un commit passato in modo che le modifiche vengano applicate solo al commit precedente, piuttosto che crearne uno nuovo, che può aiutare a mantenere pulita la cronologia del commit.

Questo articolo spiegherà il metodo per fissare facilmente un commit passato in git.

Come sistemare facilmente un commit passato in git?

Per sistemare facilmente un commit passato in GIT, prova i passaggi di seguito:

  • Reindirizzare al repository locale.
  • Apportare modifiche in un file esistente e seguirli.
  • Scegli l'ID di commit desiderato.
  • Crea un impegno commit usando il "git commit -fixup "Comando.
  • Unisci il commit di fissaggio eseguendo l'operazione Rebase.
  • Verifica le modifiche visualizzando la cronologia del registro GIT.

Passaggio 1: vai alla directory locale

Innanzitutto, passa al particolare repository Git digitando il comando a testa di testa:

$ cd "c: \ git \ reposa"

Passaggio 2: aggiornamento del file

Quindi, utilizza il "eco"Comanda e aggiorna il contenuto del file desiderato:

$ echo "questo è nuovo 2" >> new2.TXT

Passaggio 3: tenere traccia delle modifiche

Successivamente, aggiungi le nuove modifiche all'area di stadiazione GIT:

$ git aggiungi .

Passaggio 4: controlla il registro Git

Ora, controlla la cronologia di commit e scegli l'ID commit in cui si desidera aggiungere le nuove modifiche:

$ git log --oneline

Per l'output di seguito, abbiamo selezionato il “79DBB1D"Commit ID per ulteriori elaborazioni:

Passaggio 5: crea un impegno fissa

Corri il "commit gitComando "con il"-aggiustare"Opzione e ID commit desiderato per creare una correzione per un commit particolare:

$ git commit - -fixup 79dbb1d

Passaggio 6: unire il commit di fissaggio

Successivamente, eseguire l'opzione Rebase per unire il commit di Fix Up nell'ultimo commit:

$ git rebase -i head ~ 5

Qui, il "-io"Il flag viene utilizzato per una modalità interattiva che consente la modifica dei commit e il"Testa ~ 5"L'opzione viene utilizzata per modificare gli ultimi cinque commit:

Dopo aver eseguito il comando sopra fornito, un editor predefinito si aprirà con una schermata interattiva:

Ora, cambia la posizione del commit di fissaggio posizionandolo dopo il commit target. Quindi, sostituire il "scegliere"Parola chiave con il"aggiustare"Accanto al commit che deve essere risolto. Dopodiché, premere il "Ctrl + s"Chiavi per salvare le modifiche e chiudere il file aperto:

Si può osservare che l'operazione Rebase è stata eseguita con successo per fissare un commit passato:

Passaggio 7: verificare l'operazione di fissaggio di commit passata

Per garantire se l'operazione di fissaggio è stata eseguita con successo o meno, controlla la cronologia del commit:

$ git log --oneline

Secondo lo screenshot sotto fornito, il commit precedentemente specificato è stato fissato e sostituito con un nuovo ID di commit:

Passaggio 8: visualizza nuovi dettagli di commit

Infine, eseguire il “Git Show"Comando insieme all'ID commit appena assegnato per visualizzare il suo contenuto aggiornato:

$ git show 42a0bdb

Si può vedere che le modifiche sono state aggiunte all'ID commit appena assegnato:

Abbiamo spiegato in modo efficiente il metodo per fissare un commit passato.

Conclusione

Per sistemare un commit passato, prima, spostati nel repository particolare. Quindi, aggiorna un file desiderato e traccialo. Successivamente, visualizza la cronologia del commit e seleziona l'ID di commit desiderato che deve essere risolto. Successivamente, crea una correzione per l'ID di commit selezionato utilizzando "git commit -fixup "Comando. Quindi, esegui l'operazione Rebase per unire il commit di Fix Up nell'ultimo commit. Questo articolo ha spiegato il metodo per fissare un commit passato in Git.