IgorPI
@IgorPI

Git squash commits?

Коллеги, уже имею некоторый опыт работы с GIT.

В самом начале истории, был бардак, да такой что лучше не говорить об этом.

Я хочу применить squash commits для всего репозитория.
Для этого, я попрошу всех своих коллег зафиксировать все свои изменения, запушить и удалить репозитории локально.
Далее я создам новую ветку develop (в которой бардачело) и к ряду коммитов применю squash, а после верну на место (в origin remote).

В моей теории, всё работает, на практике страшновато, хотя неоднократно выполнял squash.
Так как я такого ещё не делал, есть опасения, что могу накосячить.

Графическое представление

604d3727c3b6c050972685.png
  • Вопрос задан
  • 389 просмотров
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
В книге ProGit есть описание одного интересного приёма, который возможно уместен в данной ситуации. Он позволяет спрятать начало истории и оставить только свежие коммиты, не прибегая к rebase.

Например, допустим в вашем проекте огромная история изменений и вы хотите разбить ваш репозиторий на два — один с короткой историей для новых разработчиков, а другой с более длинной историей для людей, интересующихся анализом истории. Вы можете пересадить одну историю на другую, 'заменяя' самый первый коммит в короткой истории последним коммитом в длинной истории. Это удобно, так как вам не придётся по-настоящему изменять каждый коммит в новой истории, как это вам бы потребовалось делать в случае обычного объединения историй (так как родословная коммитов влияет на SHA-1).

Так мы скроем историю, за которую нам стыдно. Но при желании всегда можно будет быстро вернуть историю на место не переписывая хеши всех коммитов.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fomenkogregory
@fomenkogregory
Юниор софтварный инженер
А в чем вопрос ? )
Если страшновато сделай на тестовой ветке сперва
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы