2016-06-02 11 views
11

Voglio eseguire un git rebase -i some-hash.Come posso `git rebase -i` e impedire" Hai chiesto di modificare il commit più recente, ma farlo lo renderebbe vuoto. "?

quando l'eseguo, ottengo l'errore:

You asked to amend the most recent commit, but doing so would make it empty. You can repeat your command with --allow-empty, or you can remove the commit entirely with "git reset HEAD^".
[...]
Could not apply [...]

Tale errore sembra specifico per un singolo commit, come --allow-empty non è un'opzione posso passare a rebase.

Apparentemente --keep-empty È un'opzione che posso passare a git rebase, ma non sembra risolvere il problema.

Come posso rebase e dire git, non ti preoccupare se un commit nel rebase finisce per non avere alcun effetto?

+1

non sto rebasing un singolo commit. – z5h

+0

Il mio male, devo aver associato quel messaggio con qualcos'altro. Rimozione del mio commento rumoroso. – chelmertz

risposta

16

Sembra come esecuzione:

git commit --allow-empty
git rebase --continue

Crea 2 schiacciato commit, invece di uno. L'esecuzione di git rebase -i some-hash mi consente di schiacciare i 2 nuovi commit in uno solo.

0

Se non si ridefinisce un singolo commit e si verifica lo stesso problema, il motivo è che il risultato finale del rebasing è un commit vuoto.

Supponendo che non si vuole commettere il vuoto commit, diciamo che avete questi due commit:

commit 1 
commit 2 

e hai trovato l'errore quando si desidera unire questi due commit (diciamo da git rebase -i HEAD~2) , la correzione è di ripristinare quei due commit eseguendo il comando seguente per due volte:

git reset HEAD^ 
Problemi correlati