Глядя на сквош, фиксируется, так что у публично стоящего проекта нет бессмысленных сообщений о фиксации, таких как «temp» или «temp123», ,Использование git reset --soft, маркировка фиксации, чтобы вы могли сквозировать * вниз * к ней позже
Я ищу способ использования git reset --soft HEAD~5
, но вместо случайного выбора номера 5 я хочу вернуться через журналы Git и найти все коммиты, которые не соответствуют шаблону, и как только я нажму узор прекращаю. Так скажем, мои git log
совершающие сообщения выглядеть следующим образом:
temp123
fooGit
temp
fml
temp24
tmp69
tttoday
publish/release:xyz
, так что я бы давят верхние 7 самых последних фиксаций, но оставить все «ниже» publish/release:xyz
.
По довольно сложным причинам git merge --squash
, выпущенный из публичной ветки, не будет работать для меня, потому что я в конечном итоге удаляю или переименовываю файлы совсем немного в проекте на частной ветке, и поэтому существует слишком много конфликтов слияния , Мне кажется, попробовав несколько способов, что лучше всего нажать на публичную ветку с -f и не беспокоиться о конфликтах таким образом.
Я думаю, что лучший подход в моем случае это сквош совершает так:
# on private "dev" branch
# make a bunch of changes, rename files, yadda yadda
git add . && git add -A && git commit -am "temp" &&
git checkout -b squash_branch # we do squashing on this branch to be safer
git reset --soft head~15 # apparently this undoes commits for the last 15 commits
git commit -am "A serious commit message"
git push -u public master -f # overwrite public master
таким образом, я никогда не должны разрешать конфликты между государственным лицом отрасли и частного ветви разработки, которые могут быть супер бессмысленно и раздражает мой опыт.
Однако проблема, которую я пытаюсь решить, связана с номером 15 выше. Я просто догадываюсь о том, сколько коммитов «сквош». Я бы предпочел узнать точное число, чтобы сквош.
Возможно, я могу выполнить сквош всех коммитов, у которых нет сообщения Git commit, которое соответствует определенному шаблону? Поэтому, когда я запускаю сквош, я создаю сообщение фиксации с определенным шаблоном, скажем, это «XYZ». Могу ли я запустить git reset --soft HEAD~(some git commit pattern matching to find the count)
?
Также еще один вопрос. Сделав сквош (git reset --soft
) на squash_branch
, должен ли я объединить эту ветку обратно в приватную ветку dev
?
Филиал DEV не отслеживает общественный/мастера, Дев филиал отслеживает частный/Dev –