Git rebase interactive последние N коммитов
Я сделал кучу непущенных коммитов в моей ветви функции и теперь хочу изменить порядок и частично раздавить принадлежащие коммиты визуально. Я считаю, что решение каким-то образом лежит в Git interactive, но как его вызвать?
$ git rebase --interactive --onto <the-ID-of-the-first-commit-to-rewrite>
просто всплывает VI с
noop
содержание, за которым следует прокомментированная информация. После выхода моя голова сбрасывается на указанную фиксацию.
Как правильно вызвать интерактивный rebase для изменения совершает с определенного момента?
3 ответов
вы должны использовать
git rebase --interactive <sha1>
здесь <sha1>
должны не будьте sha первого коммита, который вы хотите переписать, но sha коммита непосредственно перед этим.
если ваша история выглядит так:
pick 43576ef last commit
...
pick 5116d42 first commit to rewrite
pick cb85072 last good commit
тогда вы можете по-разному указать фиксацию, на которую нужно перебазировать:
git rebase -i cb85072
git rebase -i 5116d42^
здесь
-
^
означает фиксацию непосредственно перед этим. -
-i
это просто сокращение--interactive
вы также можете отступить от своего последнего коммита на некоторое количество коммитов. Например, если вы хотите перебазировать последние 5 коммитов вы можете использовать эту команду:
git rebase -i HEAD~5
.