Сквош все мои коммиты в один для запроса на выгрузку GitHub

Я сделал запрос на GitHub. Теперь владелец репозитория говорит, что он сквозит все коммиты в один.

Когда я печатаю git rebase -i Блокнот открывается со следующим содержимым:

noop

# Rebase 0b13622..0b13622 onto 0b13622
#
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit log message
#  x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out

Я искал в Google, но я не понимаю, как это сделать.

Ответ 1

Простое дополнение, чтобы помочь кому-то еще найти это решение. Вы можете передать количество предыдущих коммитов, которые вы хотели бы сквош. например,

git rebase -i HEAD~3 

Это вызовет последние 3 коммита в редакторе.

Ответ 2

ok Я понял это... Сначала мне пришлось написать git rebase -i xxxxxxxxxxxxxxxx, где xxxxxxxxxx - это SHA фиксации, которой я должен сквош. Затем в "Блокноте" я отредактировал первый, как подбор и остальное, как сквош. Затем появится новое окно блокнота, и там, в первой строке, я набрал имя моего нового коммита. И тогда мне пришлось сделать силовой толчок:

git push --force origin master

Ответ 3

С 1 апреля 2016 года менеджер репозитория может объединять все коммиты в запросе на извлечение в один коммит, выбирая "Сквош и объединение" в запросе на выгрузку.

Squash and merge option

Если вы хотите вручную фиксировать коммиты в запросе на извлечение, обратитесь к ответу fontno.

Ответ 4

Попробуйте git rebase -i и используйте "squash" для всех коммитов, которые вы хотите сквозировать.

Edit:

git rebase -i покажет вам интерактивный редактор со списком коммитов, которые вы переустанавливаете. Команда по умолчанию перед каждой фиксацией - это "выбрать", поэтому вам просто нужно s/pick/squash/для всех коммитов, которые вы хотите раздавить, а затем все они будут сквош в последний последний фиксатор.

Удостоверьтесь, что вы восстанавливаете правильную ветку.