Come combinare un gruppo di impegni locali in un unico push in IDEA?


86

In IDEA sto cercando di spingere alcuni commit.

Ho un requisito che sul server remoto assomigli a un'azione singola.

Faccio clic per spingere e vedo la seguente finestra inserisci qui la descrizione dell'immagine

Mi aspettavo di vedere la casella di controllo della zucca qui ma non la vedo.

Mi aiuti per favore.


2
Non posso dare consigli a IDEA, ma lo schiacciamento fa parte di un rebase interattivo o di un'unione, non di un commit. Prova a guardare lì.
musiKk

Risposte:


117

Puoi farlo usando rebase. Vai a VCS / Git / Rebase . Quindi selezionare l' opzione interattiva . Ti mostrerà un elenco di commit, in cui puoi scegliere quelli che desideri eliminare.

Dopo aver premuto Avvia rebasing, ti verrà richiesto un messaggio di commit per il commit schiacciato. Dopodiché puoi spingere il tuo commit schiacciato usando la finestra di dialogo push.

Finestra di dialogo Squash

Ulteriori informazioni sul rebase in IntelliJ sono qui .


9
può anche essere utile leggere questo articolo Git Tools - Rewriting History per sapere cosa inserire nel "campo Onto" della finestra di dialogo "Rebase branch": ad es. si HEAD~3possono selezionare gli ultimi 3 commit.
TmTron

quando schiacci insieme un gruppo di commit, i dettagli individuali di ciascuno di questi commit vengono persi? finisce per sembrare un grande impegno?
ycomp

@ycomp Sì, il rebase interattivo riscrive la cronologia, quindi i singoli commit schiacciati vengono persi e al loro posto ne viene creato uno nuovo.
Bohuslav Burghardt

Grazie, puoi annullare una zucca?
ycomp

@ycomp Non l'ho mai fatto, ma dovrebbe essere possibile. Fare riferimento ai seguenti post SO: stackoverflow.com/q/10260151/1291150 , stackoverflow.com/q/134882/1291150
Bohuslav Burghardt

35

C'è un nuovo modo:

Controllo della versione -> Registro -> Fare clic con il pulsante destro del mouse sul commit -> Interactively rebase from heree quindi è possibile scegliere di selezionare / eliminare il resto dei commit.


1
Il problema con questo approccio è che non c'è modo di selezionare "Squash" per più commit e diventa noioso farlo uno per uno.
Dmitry Serdiuk

4
@DmitrySerdiuk puoi fare clic con il tasto MAIUSC per selezionare i commit che desideri eliminare e quindi fare clic con il pulsante destro del mouse -> selezionare squash.
Aarjav

1
@Aarjav OH MIO DIO questo è esattamente ho pensato che mancasse! Nessun suggerimento sul menu di scelta rapida nella finestra di dialogo.
o_nix

21

Per me il modo più semplice con intellij è:

  • Vai alla Logscheda e scegli il commit da cui vuoi eliminare
  • Fare clic con il tasto destro e selezionare Reset Branch to this commit
  • Scegli le mixinopzioni per mantenere le modifiche dal commit
  • Conferma le modifiche e non dimenticare di selezionare l' Amend commitopzione

1
Questo è davvero il modo più semplice e trovo che sia il meno stressante e soggetto a errori.
davrog10

2
Suggerisco che nel passaggio 3 sarebbe meglio scegliere Softun'opzione invece di Mixedavere tutte le modifiche già organizzate per il commit.
provisota
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.