Spingendo vuoto si commette sul telecomando


242

Ho inviato un commit su remoto ma ora mi sono reso conto che il messaggio di commit non è corretto. Vorrei cambiare il messaggio di commit ma AFAIK non è possibile. Quindi ho deciso di creare un commit vuoto con il messaggio corretto:

git commit --allow-empty

Ci sono degli svantaggi / conseguenze della spinta a commit vuoti? C'è qualche problema che potrei affrontare in futuro a causa di questo commit vuoto ??


1
Controllare questa domanda simile stackoverflow.com/questions/6218199/...
Montaro

Risposte:


80

Non dovrai affrontare nessuna conseguenza terribile, solo la storia sembrerà un po 'confusa.

È possibile modificare il messaggio di commit facendo

git commit --amend
git push --force-with-lease # (as opposed to --force, it doesn't overwrite others' work)

MA questo sovrascriverà la storia remota con la tua, il che significa che se nel frattempo qualcuno ha effettuato quel repo, questa persona sarà molto arrabbiata con te ...

Fallo solo se sei l'unica persona che accede al repository.


5
Sì, è per questo che ho preferito spingere il commit vuoto
mrutyunjay il

4
@mrutyunjay se c'è la possibilità che altre persone abbiano ritirato il repository, quindi sì, penso che sia un'opzione migliore.
Gabriele Petronella,

1
Non affronterai alcuna conseguenza terribile, solo la storia sembrerà un po 'confusa - che conseguenza terribile! ;-)
Alois Mahdal

3
Preferisco --force-with-leaseevitare di perdere il lavoro dei collaboratori.
Kenzo,

22

la pressione di commit, vuota o no, provoca l'attivazione di eventuali hook git. Questo non può fare nulla o avere conseguenze sconvolgenti per il mondo.


9
Questa è un'osservazione sottovalutata. Sì, i commit vuoti possono essere superiori alla modifica dei commit push, ma non si può presumere che siano liberi da effetti collaterali se potrebbero essere presenti degli hook.
wintermute92,

18

Ci sono degli svantaggi / conseguenze della spinta a commit vuoti?

A parte l'estrema confusione qualcuno potrebbe capire perché ci sono un sacco di impegni senza contenuto in loro sul master, non proprio.

È possibile cambiare il commit che ti ha spinto a distanza, ma lo SHA1 del commit (in fondo è il numero ID) cambierà in modo permanente, che altera l'albero dei sorgenti - Farebbe quindi deve fare un git push -fnuovo a distanza.


15

Fintanto che fai chiaramente riferimento all'altro commit dal commit vuoto, dovrebbe andare bene. Qualcosa di simile a:

Commit message errata for [commit sha1]

[new commit message]

Come altri hanno sottolineato, questo è spesso preferibile forzare la spinta di un commit corretto.


12
 $ git commit --allow-empty -m "Trigger Build"

2
Sebbene questo codice possa risolvere la domanda, inclusa una spiegazione di come e perché questo risolva il problema, aiuterebbe davvero a migliorare la qualità del tuo post e probabilmente comporterebbe più voti positivi. Ricorda che stai rispondendo alla domanda per i lettori in futuro, non solo per la persona che chiede ora. Si prega di modificare la risposta per aggiungere spiegazioni e dare un'indicazione di ciò si applicano le limitazioni e le assunzioni. Dalla recensione
Doppio segnale acustico

-1

Che dire di questo;

 git commit --allow-empty-message -m ''

Hai semplicemente rimosso il messaggio e questo rende ancora peggio se un commit sarà vuoto, dovrebbe esserci almeno un messaggio perché.
Eric Bishard,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.