Git перезагрузить интерактивный последний n совершает
Я сделал кучу нечетких коммитов в моей ветке функций и теперь хочу изменить порядок и частично скворовать принадлежащие записи визуально. Я считаю, что решение каким-то образом находится в интерактивном Git, но как его вызывать?
$ git rebase --interactive --onto <the-ID-of-the-first-commit-to-rewrite>
просто всплывает VI с помощью
noop
за которым следует прокомментированная информация. После выхода моя голова reset к указанной фиксации.
Как правильно инициировать интерактивную rebase для изменения коммитов с определенного фиксации?
Ответы
Ответ 1
вы должны использовать
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
Ответ 2
Вы также можете отступить от последнего фиксации некоторым количеством коммитов. Например, если вы хотите переустановить последние 5 коммитов, вы можете использовать эту команду:
git rebase -i HEAD~5
.
Ответ 3
Я пропустил действие rebase
в вашей инструкции:
git rebase -i <id-of-commit>
Ответ 4
Чтобы просмотреть и переписать последние коммиты n
, используйте:
git rebase -i HEAD~n
p, pick = использовать коммит
f, fixup = like "squash", но отбросить это сообщение журнала коммита
https://www.freecodecamp.org/forum/t/how-to-squash-multiple-commits-into-one-with-git-squash/13231