Есть ли способ группировать коммиты в Git?? У меня была история создания пользователя. Я создал файл за файлом и зафиксировал каждый файл отдельно. И отправил его в репозиторий github. Теперь я хочу сгруппировать все предыдущие коммиты, скажем, под меткой «Создание пользователя», чтобы я мог ссылаться на них всех вместе.
Я не хочу сопоставлять, поэтому сквош не работает.
Этот вопрос SO имеет аналогичные требования, но при именовании коммитов ОП использовал @some_label. Я тоже не использовал такую этикетку.
Есть какой-либо способ сделать это. Если да, то как?
Следуйте моему ответу здесь на аналогичную проблему stackoverflow.com/questions/31668794/ — person inquisitive schedule 03.09.2015
Тот самый процесс, который вы хотите осуществить, это раздавливание. Даже в интерактивной перебазировке это все еще сжимает коммиты вместе. Почему ты этого не хочешь? — person inquisitive schedule 03.09.2015
вы неправильно поняли мой вопрос. Я хочу, чтобы предыдущие коммиты все еще были там, но просто сгруппировали их. — person inquisitive schedule 03.09.2015
Раздавливание @Makoto заменяет несколько коммитов одним коммитом. Это отличается от желания ссылаться на набор отдельных коммитов. — person inquisitive schedule 03.09.2015
@Caleb: Да, это другое. Я отзову это голосование за обман, поскольку похоже, что они этого не хотят. — person inquisitive schedule 03.09.2015
Единственные метки, которые вы можете добавлять к коммитам, — это теги. Вы можете пометить каждую фиксацию и использовать общий префикс для каждой группы коммитов. Но это не очень практично. — person inquisitive schedule 03.09.2015
@Inquisitive Как вы планируете использовать эти группы? Например, вам нужно иметь возможность выбирать только коммиты в группе? Или вам нужно только иметь возможность говорить об определенных наборах коммитов? Обычно сквоширование является правильным ответом, если у вас есть набор коммитов, необходимых для данной функции, и если вам нужны какие-то дополнительные возможности, возможно, вы могли бы объяснить, почему. Например, почему ваши коммиты создания пользователей должны существовать отдельно? — person inquisitive schedule 03.09.2015
Это одно из таких заданий, когда наши коммиты и сообщения коммитов также будут прочитаны и оценены нашими учителями. Так что мне все еще нужны старые сообщения. Я хочу сгруппировать их для ясности, что я закончил с одной историей, и мы получим много таких историй. и мне было просто любопытно, существуют ли такие вещи в git. — person inquisitive schedule 03.09.2015
@Caleb Это полезно для подробных итерационных коммитов, которые можно легко разбить на части git для поиска регрессий, но в то же время иметь организованную историю git, которую было бы относительно легко просматривать. — person inquisitive schedule 04.07.2021
Создайте свои коммиты в ветке и объедините ветку обратно в мастер, используя
--no-ff
.Чтобы сделать это задним числом, предполагая, что у вас больше нет коммитов после фиксации создания пользователя:
git branch user-creation
) для последнего коммита.git reset --hard OLD-COMMIT-SHA
).user-creation
в ветвьmaster
(git merge --no-ff user-creation
).Это хороший подход, но я уже отправлял коммиты. Без создания ветки. — person inquisitive; 03.09.2015
Я также писал ответ, предлагающий это, поэтому отказался от него. Если вы уже отправили коммиты и можете переписать историю, просто исправьте это и нажмите -f — person inquisitive; 03.09.2015
Я добавил инструкции по созданию и объединению ветки задним числом. — person inquisitive; 03.09.2015
Действительно,
git mrege --no-ff
на данный момент является лучшим решением этой проблемы, также см. git-merge-no-ff» title=»в чем разница между git merge и git merge no ff»> stackoverflow.com/questions/9069061/ — person inquisitive; 04.07.2021Если вы не хотите раздавливать, просто выполните перебазирование и измените коммиты, добавив «@fancy_label», затем следуйте инструкциям в вашем ссылка: