Git: modifica un messaggio di commit esistente

Gli errori sono comuni, li commettiamo tutti. Ecco perché mettono le gomme sulle matite. E questo non è diverso con strumenti come Git. Sebbene alcune modifiche possano essere difficili da annullare, di solito c'è un modo.

Quindi cosa succede se si desidera modificare un messaggio di commit esistente? Fortunatamente questo è semplice da fare in Git, ma il metodo potrebbe cambiare leggermente a seconda di alcuni fattori.

Correzione dell'ultimo commit, non ancora trasferito su remoto

Questo è il caso più semplice poiché non è necessario modificare un repository remoto, devi solo modificare il tuo. In questo caso, puoi usare il seguente comando:

$ git commit --amend

L'esecuzione di questo comando aprirà un editor in cui è possibile modificare il file ultimo messaggio di commit. Una volta terminato e salvato/chiuso l'editor, il messaggio di commit verrà modificato.

Personalmente, preferisco fare la maggior parte delle cose sulla riga di comando, cosa che puoi fare aggiungendo un argomento e un messaggio al comando sopra:

$ git commit --amend -m "Added a new file"

In questo modo non si aprirà l'editor, ma si modificherà immediatamente il messaggio di commit.

Correzione dell'ultimo commit, inviato a remoto

Questo è un altro caso comune ed è un po' più difficile da risolvere, non solo perché abbiamo bisogno di modificare il nostro repository, ma abbiamo anche bisogno di modificare il repository remoto, che potrebbe essere più avanti del tuo ramo locale.

Il primo passo è modificare l'ultimo commit, proprio come abbiamo fatto nella sezione precedente:

$ git commit --amend -m "Added a new file"

Quindi, è necessario inviare queste modifiche al repository remoto. Tuttavia, questo deve essere fatto utilizzando il --force bandiera.

$ git push <remote> <branch> --force

Dobbiamo farlo in questo modo per sovrascrivere il repository remoto con il nostro stato locale.

Sii consapevole che forzando la spinta lo farai anche tu perdere qualsiasi commit sul ramo locale che non hai già nel tuo ramo locale. Procedi con cautela!

Dai un'occhiata alla nostra guida pratica e pratica per l'apprendimento di Git, con le migliori pratiche, gli standard accettati dal settore e il cheat sheet incluso. Smetti di cercare su Google i comandi Git e in realtà imparare esso!

Se riesci a cogliere l'errore abbastanza velocemente, apportare le modifiche non sarà un problema. In caso contrario, potrebbe essere necessario trovare un'altra soluzione per evitare di perdere le modifiche apportate dopo il messaggio di commit che si desidera modificare.

Usa Rebase interattivo

Un'altra opzione, più flessibile rispetto alle precedenti soluzioni descritte, consiste nell'utilizzare un rebase interattivo. In questo modo puoi ispezionare gli ultimi N commit e apportarvi modifiche, inclusi picking, squash, ecc.

Per avviare il rebase, puoi usare il seguente comando:

$ git rebase -i HEAD~n

Qui, n è il numero di commit che vuoi ispezionare e modificare. Vedrai quindi un elenco di commit, simile a questo:

$ $ git rebase -i HEAD~4
pick 788ebf0 Oops, I forgot to add a new file
pick ced1329 Fixed a super critical bug
pick 5e9cdc5 Added a new file



















Come puoi vedere, sono elencati tutti gli ultimi N commit e puoi modificare i loro messaggi secondo necessità.

Timestamp:

Di più da Impilamento