Сквош фиксирует перед хэшем - PullRequest
0 голосов
/ 25 мая 2018

Я создал быстрый репо и создал приложение поверх него.Быстрый старт репо содержал ~ 30 коммитов.Последний коммит их репо, скажем, abcde, а первый коммит, скажем, fghij.Как я могу раздавить все коммиты, от первого до abcde, чтобы перед fghij.

был только один большой коммит. Не могли бы вы объяснить это построчно.Я не понимаю других ответов по аналогичным темам.

Пример дерева истории коммитов сейчас:

klmno - Currently newest commit
.
.
.
fghij - Initial commit of mine
abcde - Last commit made by them
.
.
vwxyz - Initial commit of theirs

Пример дерева истории коммитов ожидается:

klmno - Currently newest commit
.
.
.
fghij - Initial commit of mine
prstu - Fresh X installation

1 Ответ

0 голосов
/ 26 мая 2018

Сначала войдите в интерактивный режим перебазирования git - обратите внимание, что в этом особом случае вам нужно указать специальный параметр --root для редактирования корневого (первого) коммита, что обычно не разрешается командой git rebase:

git rebase -i --root

Если вы не настроили переменную окружения EDITOR, вы попадете в стандартный текстовый редактор git, который, я думаю, всегда будет vi.Если вы не понимаете vi, введите :q, чтобы выйти и запустить процесс снова - на этот раз, установив EDITOR в качестве имени текстового редактора, который вы знаете, как использовать.

Винтерактивный файл ребаз, который git дает вам для редактирования, измените все строки для коммитов с второго коммита на abcde, чтобы начать со слова fixup вместо pick.Оставьте строки для ваших коммитов и строку для самого первого коммита без изменений.

Сохраните файл и выйдите из текстового редактора.git теперь будет выполнять сжатие коммитов исходного репозитория в один коммит.

...