2016-01-26 20 views
5

Quando si usa Git all'interno di Intellij, come faccio a schiacciare tutti i miei commit per un ramo locale? Quali impostazioni devo usare nella finestra del ramo di rebase?Intellij - Come schiacciare solo il ramo locale

Ho provato a impostare il comando Su locale/master e Da al mio ramo, ma poi va e cerca di unire le modifiche principali nel mio ramo per ogni commit che ho fatto, anche se in genere rebase il mio branch su master ogni mattina ... quindi DOVREBBE non essere in conflitto. Eppure trova quasi sempre conflitti e causa problemi di fusione. Voglio SOLO schiacciare il ramo commit e messaggi così quando spingo su Github ne vede solo uno.

enter image description here

+1

@NikZ ho trovato questa risposta molto utile per schiacciare localmente prima di spinta [Combina impegna a semplice pressione] (http://stackoverflow.com/questions/26898511/how-to-combine-group-of -local-impegna-to-single-push-in-idea) –

risposta

8

Potrebbe essere un po 'scomodo, ma è possibile utilizzare la notazione git di HEAD ~ così nel "Onto" campo devi scrivere la quantità di commit si desidera includere come:

In questo esempio io ho 4 (l'ultimo 4) commette voglio combinare in 1.

rebase interactive dialogue

nella finestra di dialogo delle voci ar apertura E elencati in ordine, quindi è necessario per schiacciare tutti dopo il primo con la casella di riepilogo. (Ho fatto la prima un riformulare ma che non è necessaria in quanto ci sarà un dialogo per lo schiacciamento comunque messaggio-cambiamento, in modo che possa essere lasciato in 'pick')

squashing

poi basta un nuovo messaggio per i commit combinati e il gioco è fatto.

commit message