Я хочу разбить первый фиксатор в моем репозитории git, но я не могу использовать rebase для этого, потому что требуется родительский node. Я нашел Изменить корневую фиксацию в Git?, полезную для модификации первого коммита, но не разбивая его. Как я могу разбить его?
Разделение первого фиксации в git
Ответ 1
Вы можете просто выполнить точно такой же процесс в вопросе, с которым вы связались, но после проверки корневой фиксации вы можете использовать git commit --amend
для изменения первоначальной фиксации, а затем git commit
, чтобы сделать дополнительную фиксацию до продолжения с командой rebase.
В зависимости от того, как вы хотите разделить фиксацию, вы можете использовать git rm --cached
для удаления файлов, которые вы хотите добавить во время второго фиксации перед исходным git commit --amend
, и отредактировать любые файлы, которые вы хотите отличить, перед вызовом git add
в этих файлах, перед тем, как вы вызовете git commit --amend
.
После вызова git commit --amend
, чтобы убедиться, что вы точно зафиксировали состояние исходной корневой фиксации, вы можете позвонить:
git checkout <sha1-of-original-root> -- .
перед вызовом git commit
, чтобы сделать вторую фиксацию фиксации root.
Ответ 2
Вы можете использовать параметр --root
, чтобы сообщить rebase
, что вы хотите переписать команду root/first commit:
$ git rebase --interactive --root
Затем корневая фиксация будет отображаться в списке TODO переустановки, и вы можете ее отредактировать:
edit <root commit sha> <original message>
pick <other commit sha> <message>
...
Это объяснение --root
из Git документов для подделки:
Восстановите все коммиты, достижимые с
<branch>
, вместо того, чтобы ограничивать их<upstream>
. Это позволяет вам переустанавливать корневую фиксацию на ветке.