C'è un modo per modificare un commit senza vi
(o il tuo $EDITOR
) spuntare con l'opzione per modificare il messaggio di commit, ma semplicemente riutilizzando il messaggio precedente?
C'è un modo per modificare un commit senza vi
(o il tuo $EDITOR
) spuntare con l'opzione per modificare il messaggio di commit, ma semplicemente riutilizzando il messaggio precedente?
Risposte:
Dalla versione 1.7.9 di git puoi anche usare git commit --amend --no-edit
per ottenere il tuo risultato.
Tieni presente che ciò non includerà i metadati dell'altro commit come il timestamp che potrebbero essere o meno importanti per te.
git commit -C HEAD --amend
farà quello che vuoi. L' -C
opzione accetta i metadati da un altro commit.
git config --global alias.amend 'commit --amend -C HEAD'
. È quindi possibile utilizzare git amend
come scorciatoia.
--amend
, anche senza altre opzioni, conserva la data dell'autore (ma cambia la data di commit). Come tale, ho rimosso il mio vecchio commento.
—amend
. È possibile creare un nuovo commit ma utilizzare lo stesso messaggio del commit precedente. Potrebbe non sembrare utile, ma il mio messaggio di commit per impostazione predefinita quando sto solo salvando il mio lavoro senza dover pensare a un bel messaggio di commit, continuo a riutilizzare il messaggio—message=“Work in progress (untested)”
Un'altra possibilità (sciocca) è git commit --amend <<< :wq
se hai vi (m) come $EDITOR
.
... <<< ZZ
potrebbe essere anche meno digitando;)
... <<< :x
:)
Utilizzo della risposta accettata per creare un alias
oops = "!f(){ \
git add -A; \
if [ \"$1\" == '' ]; then \
git commit --amend --no-edit; \
else \
git commit --amend \"$@\"; \
fi;\
}; f"
allora puoi farlo
git oops
e aggiungerà tutto e modificherà usando lo stesso messaggio
o
git oops -m "new message"
per modificare la sostituzione del messaggio