Весь этот git reset, hard, soft и все остальное, упомянутое здесь, вероятно, работает (это не для меня), если вы делаете шаги правильно и что-то вроде джинна.
Если вы средний Джо Смо, попробуйте следующее:
Как использовать git merge --squash?
Спасла мне жизнь, и я буду играть в сквош, используя это 4 раза, так как я узнал об этом. Простой, чистый и в основном 1 комад. Вкратце:
если вы находитесь на ветке, давайте назовем ее «my_new_feature» от разработки, и ваш запрос на выборку имеет 35 коммитов (или столько же), и вы хотите, чтобы это было 1.
A. Убедитесь, что ваша ветка обновлена, перейдите на разрабатывать, получать последние версии, объединять и разрешать любые конфликты с помощью «my_new_feature»
(этот шаг на самом деле вы должны предпринять как можно быстрее, в любом случае)
B. Получить последние из разработки и расшириться в новом филиале называют его «my_new_feature_squashed»
C. магия здесь.
Вы хотите перенести свою работу из "my_new_feature" в "my_new_feature_squashed".
Просто сделайте это (в то время как в вашей новой ветке мы создали от разработки):
git merge --squash my_new_feature
Все ваши изменения теперь будут в вашей новой ветке, не стесняйтесь тестировать ее, затем просто сделайте свой 1 единственный коммит, нажмите, новый PR этой ветки - и ждите повторения на следующий день.
Ты не любишь кодировать? :)
git rebase -i 58333012713fc168bd70ad00d191b3bdc601fa2dинтерактивную перебазировку, где commitnumber - это последний коммит, который остается неизменным