2017-01-04 29 views
5

Zrobiłem pęczek niezmiennych zatwierdzeń w mojej gałęzi funkcji i teraz chcę zmienić kolejność i częściowo zmiażdżyć przynależność commity wizualnie. Sądzę, że rozwiązanie jest w jakiś sposób interaktywne, ale jak go przywołać?Git rebase interactive ostatnie n commit

$ git rebase --interactive --onto <the-ID-of-the-first-commit-to-rewrite> 

tylko wyskakuje VI z

noop 

zawartości następnie skomentował informacji. Po wyjściu moja głowa zostaje zresetowana do określonego zatwierdzenia.

Jak poprawnie uruchomić interaktywny rebase do modyfikowania zatwierdzeń od pewnego zatwierdzenia?

+0

Wywołujesz go poprawnie, po prostu musisz nauczyć się go używać. Przeczytaj sekcję z komentarzami, zawiera ona krótkie wyjaśnienie, co powinieneś zrobić. – Maroun

+0

f @ MarounMaroun: nie uruchamia prawidłowego polecenia. –

Odpowiedz

9

należy użyć

git rebase --interactive <sha1> 

gdzie <sha1> powinny nie być sha pierwszego popełnić chcesz przerobić, ale sha zatwierdzenia tuż przed.

jeśli historia wygląda następująco:

pick 43576ef last commit 
... 
pick 5116d42 first commit to rewrite 
pick cb85072 last good commit 

następnie można istnieją różne sposoby, aby wskazać popełnić na których rebase:

git rebase -i cb85072 
git rebase -i 5116d42^ 

miarę

  • ^ środki commit tuż przed.
  • -i jest po prostu skrót od --interactive
+0

Wygląda na to, że "na" spowodowało problemy. –

1

tęsknię akcję rebase w instrukcji:

git rebase -i <id-of-commit> 
+0

Tak, był literówka. Naprawiłem to pytanie. –

6

Można również wycofać się z twoim ostatnim popełnienia przez jakąś liczbę zatwierdzeń. Na przykład, jeśli chcesz dokonać ponownego 5 ostatnich zatwierdzeń, możesz użyć tego polecenia: git rebase -i HEAD~5.