2011-02-10 13 views
10

Ho appena iniziato a usare git. Rebase è un'ottima roba. Avrei dovuto usarlo in un caso specifico precedente.posso ribattere i vecchi commit?

c'è un modo perfettamente accettabile per ribaltare i vecchi commit per il bene dei commit chiari?

risposta

12

È consigliabile eseguire questa operazione solo per i commit che non sono stati inviati a monte. Detto questo, trovo più facile usare git rebase -i <commit> dove <commit> è l'id di un commit che è vecchio almeno quanto il più nuovo con cui non vuoi fare casino. Quando viene visualizzato il tuo editor, conterrà le istruzioni su come schiacciare e/o eliminare i commit.

6

In generale, se hai condiviso un commit con qualcun altro, non rebase.

Se non hai condiviso un commit con nessun altro, puoi fare quello che vuoi.

Per ulteriori informazioni, vedere la sezione "RECUPERAZIONE DA RIEMPIMENTO UPSTREAM" di git-rebase manpage.

+0

quella pagina man è sinceramente disorientante per me. Se ho 10 commit e tutto quello che voglio fare è schiacciare 3 4 e 5 insieme, come potrei farlo? – griotspeak

+2

@griot Avvia rebase interattivo e contrassegnali come schiacciati. –

+0

Nota: il recupero da un 'git push -f' sarà più semplice con Git 2.0: vedi http://stackoverflow.com/a/20423029/6309 – VonC

Problemi correlati