Ответ 1
Простое дополнение, чтобы помочь кому-то еще найти это решение. Вы можете передать количество предыдущих коммитов, которые вы хотели бы сквош. например,
git rebase -i HEAD~3
Это вызовет последние 3 коммита в редакторе.
Я сделал запрос на 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, но я не понимаю, как это сделать.
Простое дополнение, чтобы помочь кому-то еще найти это решение. Вы можете передать количество предыдущих коммитов, которые вы хотели бы сквош. например,
git rebase -i HEAD~3
Это вызовет последние 3 коммита в редакторе.
ok Я понял это...
Сначала мне пришлось написать git rebase -i xxxxxxxxxxxxxxxx
, где xxxxxxxxxx - это SHA фиксации, которой я должен сквош. Затем в "Блокноте" я отредактировал первый, как подбор и остальное, как сквош. Затем появится новое окно блокнота, и там, в первой строке, я набрал имя моего нового коммита.
И тогда мне пришлось сделать силовой толчок:
git push --force origin master
С 1 апреля 2016 года менеджер репозитория может объединять все коммиты в запросе на извлечение в один коммит, выбирая "Сквош и объединение" в запросе на выгрузку.
Если вы хотите вручную фиксировать коммиты в запросе на извлечение, обратитесь к ответу fontno.
Попробуйте git rebase -i
и используйте "squash" для всех коммитов, которые вы хотите сквозировать.
Edit:
git rebase -i
покажет вам интерактивный редактор со списком коммитов, которые вы переустанавливаете. Команда по умолчанию перед каждой фиксацией - это "выбрать", поэтому вам просто нужно s/pick/squash/для всех коммитов, которые вы хотите раздавить, а затем все они будут сквош в последний последний фиксатор.
Удостоверьтесь, что вы восстанавливаете правильную ветку.