2012-04-04 10 views
5

Ho commesso un errore quando rebase a un commit recente. (Ho dimenticato di "git fetch --all" prima, poi rebase), e ho commesso e spinto al ramo remoto da allora. Ora ho eseguito correttamente il rebase recuperando prima, risolto i conflitti e trasferito al ramo remoto. Ora, sembra che tutti i miei recenti commit si presentino due volte. Quello che mi piacerebbe fare è usare la modalità interattiva git rebase, scegliere tutti i commit che voglio, quindi rebase correttamente al codice di commit sha. È questo il modo di fare questo? e se avvio git rebase -i, quale codice sha dovrei usare, il codice sha del punto di diramazione originale? o il codice sha più recente? Grazie,Come eseguire la modalità interattiva git rebase per rimuovere i commit duplicati

David

risposta

1

Ho rimosso con successo i commit duplicati. Ecco cosa ho fatto: hard reset al punto di ramificazione, pull from origin, start git rebase -i SHACODE (punto di diramazione originale), scegli i commit che voglio mantenere, git rebase allo SHACODE corrente.

5

Dare git aggiustano il numero di commit indietro nel tempo. Per 10 commettere indietro nella storia:

git rebase -i HEAD~10 

Poi basta eliminare le linee per i commit che si desidera rimuovere nell'editor di testo che viene mostrato. Salvando il file e uscendo, verrà avviato il rebase e le linee rimosse non saranno più nella cronologia una volta completato il rebase.