2011-08-25 5 views
13

So come eseguire il rebase su un ramo o tag specifico utilizzando eGit in Eclipse, ma non ho trovato un modo per rebase su uno sha1 specifico utilizzando eGit. Mi piacerebbe farlo per schiacciare i commit prima di spingere a monte (ovvero, fare git rebase -i HEAD~n dove n è un numero di commit fa dove voglio rebase). E 'possibile con eGit? In caso contrario, c'è un altro plug-in Eclipse che dovrei usare che fornirebbe questa funzionalità?Come posso fare l'equivalente di git rebase -i HEAD ~ 2 in eGit?

risposta

8

EGit ha rebase, ma non ha ancora il rebase interattivo che chiedi.

+0

vedere i seguenti collegamenti per i progressi su questa funzione: https://bugs.eclipse.org/bugs/show_bug.cgi?id=340967 https://bugs.eclipse.org/bugs/show_bug.cgi?id= 356939 –

+4

Questa funzione sarà disponibile in Eclipse Luna e può essere già installata. Vedi http://m-sohn.blogspot.com/2013/11/interactive-rebase-with-egit-32.html – torkildr

0

Dalla visualizzazione cronologia selezionare il commit a cui effettuare il rebase e creare un ramo denominato rebase-point o qualsiasi altra cosa. Voilà, puoi ora rebase a quel ramo ed eliminarlo in seguito, se lo desideri. Generalmente preferisco usare un ramo nominato per cose come questa, perché minimizza la possibilità di errori da parte mia. In alternativa, considera che origin/master è spesso il punto di riferimento corretto se stai schiacciando i commit per una spinta.

+0

Come quando si tenta di rebase su uno specifico commit tramite la risposta di @ KevinSawicki, ottengo anche che "Rebase non ha fatto nulla, HEAD era già aggiornato" messaggio quando provo questo? Penso che mi manchi qualcosa di ovvio qui, ma non so cosa ... – Zach

+0

Hmm, sembra che dovrai farlo nel ramo della funzione prima di unirlo in 'master', a causa dell'eclissi" aiutare " tu troppo –

0

È inoltre possibile eseguire il rebase dalla vista Cronologia Eclipse.

  • Selezionare il repository dalla vista Git repository
  • pulsante destro del mouse e selezionare Visualizza nella storia
  • Selezionare il commit si desidera rebase al ramo attualmente estratto in cima
  • tasto destro fare clic e selezionare Rebase in cima a articolo
  • Nota: potrebbe essere necessario selezionare Mostra tutti i rami e i tag prima dalla Cronologia visualizza la barra degli strumenti per visualizzare il commit che stai cercando nella tabella.
+0

Avrei dovuto aggiungere queste informazioni alla domanda, ma questo è il modo in cui inizialmente ho pensato che avrebbe funzionato. Tuttavia facendo questo su un commit precedente nello stesso ramo appare sempre una finestra di dialogo che dice "Rebase non ha fatto nulla, HEAD era già aggiornato." – Zach

8

Sono stato schiacciamento successo impegna con passi da this post (tagliato e incollato qui):

Se voglio schiacciare l'ultimo m impegna sul ramo corrente poi ho

  • selezionare nella storia il primo commit che non voglio schiacciare
  • tasto destro del mouse e dire "Team-> Reset-> Soft"
  • tasto destro del mouse e dire "Conferma". Questo commit conterrà tutte le modifiche dell'ultima m commit insieme
Problemi correlati