Modifica del messaggio di commit git in GitHub


173

Esiste un modo per modificare online il messaggio di commit GitHub.comdopo l'invio?

Dalla riga di comando, uno può fare

git commit --amend -m "New commit message"

come suggerito correttamente in un'altra domanda .

Provare git pulle poi git pushha funzionato (senza che nessun altro commit abbia interferito nel frattempo).

Ma può essere fatto tramite il GitHubsito Web?


Si prega di consultare la risposta di @ DanGreen-Leipciger anche se non è quella accettata.
RBT,

Risposte:


101

No, questo non è direttamente possibile. L'hash per ogni commit Git viene anche calcolato in base al messaggio di commit. Quando si modifica il messaggio di commit, si modifica l'hash di commit. Se vuoi spingere quel commit, devi forzare quel push (git push -f). Ma se già qualcuno ha tirato il tuo vecchio commit e ha iniziato un lavoro basato su quel commit, dovrebbe rifare il suo lavoro sul nuovo commit.


Potrei anche fare git pull e poi git push e ha funzionato. Ma a quanto pare non esiste un modo online.
PNS,

Ancora non possibile dal 5 aprile 2016
bigT

E suppongo che non sarà una priorità, dato che cambieresti la cronologia del commit di una filiale già pubblicata, cosa che non dovresti mai fare (tranne se sei sicuro al 200%, che nessun altro ha questa filiale sulla sua macchina locale).
Dunni

Questo è solo mezzo vero. È vero, ma solo con ipotesi. La risposta sarebbe migliore se fosse combinata con quella di @DanGreen (sotto). Non è "direttamente possibile", e certamente viene fornito con le avvertenze (cioè: "non dovresti mai" farlo ... [tranne quando sei sicuro di volerlo] ") - ma semplicemente dicendo che non lo è possibile, quando tecnicamente è possibile, è una risposta incompleta.
Bane,

1
L'OP ha chiesto se è possibile farlo online sul sito Web di Github. AFAIK questo non è ancora possibile. Quindi la mia risposta è valida e la risposta di Dan Green gestisce solo il modo in cui farlo localmente, non sul sito Web di Githubs.
Dunni

145

Le istruzioni di GitHub per fare questo:

  1. Sulla riga di comando, accedere al repository che contiene il commit che si desidera modificare.
  2. Digita git commit --amende premi Invio.
  3. Nel tuo editor di testo, modifica il messaggio di commit e salva il commit.
  4. Utilizzare il git push --force example-branchcomando per forzare il push sul vecchio commit.

Fonte: https://help.github.com/articles/changing-a-commit-message/


11
STAI ATTENTO! La differenza tra l'utilizzo di <git commit --amend> & <Invio> e <git commit --amend -m "nuovo messaggio di commit">, è che nel primo caso si sta modificando il messaggio di commit in un editor di testo & nel secondo lo si sostituisce con il "nuovo messaggio di commit". Se si forza il push, questo sostituirà il commit sul telecomando. Questo NON risolve il problema che se altre persone nella tua squadra hanno eseguito il commit precedente ora hai storie diverse (inclusi commit diversi) su macchine diverse. Se sai che nessuno ha eseguito il commit, questo è sicuro. Leggi la fonte che Dan ha pubblicato
TMin

7
git commit --amendè sempre esistito. Inoltre ti stai confondendo tra git (che è uno strumento da riga di comando open source) e Github (che è una società che fornisce un hosting di origine online).
Vinyll,

1
L'OP ha chiesto di GitHub e in particolare dopo che il commit è stato inviato ai loro server. Queste sono le istruzioni di GitHub per fare ciò di cui l'OP ha chiesto.
Dan Green-Leipciger,

3
@ DanGreen-Leipciger - sì, ma questo non è fatto sul sito Web stesso, è fatto usando la riga di comando. Credo che PNS volesse farlo dall'interfaccia web.
PhistucK,

2
L'OP ha chiesto come farlo specificamente con GitHub, ecco come farlo specificamente con GitHub.
Dan Green-Leipciger,

30

Devi git push -fsupporre che nessuno abbia mai eseguito l'altro commit prima. Attenzione, stai cambiando la cronologia.


3

No, perché il messaggio di commit è correlato al commit SHA / hash e, se lo cambiamo, anche il commit SHA viene modificato. Il modo in cui l'ho usato è creare un commento su quel commit. Non posso pensare diversamente.


2

Per gli utenti di Intellij: se si desidera apportare modifiche in modo interattivo per commit passati, che non vengono inviati, seguire i passaggi seguenti in Intellij :

  • Seleziona Controllo versione
  • Seleziona Registro
  • Fare clic con il tasto destro del mouse sul commit per cui si desidera modificare il commento
  • Fai clic su Reword
  • Fatto

Spero che sia d'aiuto


0

Stavo affrontando lo stesso problema.

Vedi nel tuo github per un particolare ramo e scoprirai l'id di commit del primo commit in quel ramo. fare un rebase a quello:

git rebase -i

l'editor si aprirà. Fai una traccia dei tuoi commit dall'interfaccia utente di github e dall'editor aperto e modifica i messaggi.

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.