Удалить старые коммиты и просто сохранить последний коммит на REMOTE - PullRequest
0 голосов
/ 26 апреля 2019

Думаю, что у меня 50 коммитов на удаленном компьютере, и перед созданием запроса на слияние я хотел бы удалить все 49 и оставить только последний, который я нажал.
Есть ли способ сделать это?

1 Ответ

2 голосов
/ 26 апреля 2019

Полагаю, эти 50 коммитов в вашей ветке.

Я также предполагаю, что ваша ветвь основана на родительской ветке (например, master), в которой она запрашивается для слияния (с запросом на слияние).

Если это так, и если вы хотите, чтобы эти 50 коммитов были едины, вы можете сделать:

git rebase --interactive master # change master if it is not your base branch

В редакторе, который будет открыт, пометьте коммиты от 2 до 50 как squash вместо pick, сохраните и выйдите, обновите сообщение коммита, чтобы получить тот, который вы хотите, и все ваши коммиты будут сжаты в один.

Если вы хотите, чтобы коммиты с 1 по 49 исчезли (включая их содержимое) и оставили только 50-й), в редакторе при запуске git rebase --interactive master удалите все строки, которые вы не хотите сохранять, только последний коммит, затем сохраните и выйдите.

В конце вам придется нажать форс, чтобы обновить пульт:

git push --force

Пожалуйста, прочтите также раздел INTERACTIVE MODE:

man git-rebase
...