Executando verificação de segurança...
1

[Dúvida] Squash de commits com overwriting

Contexto

É o seguinte, tenho um website que possui duas branches, a main e a prod. Faço deploy na Vercel, e configurei pra vercel sempre fazer o deploy em produção a partir da branch prod.

Toda vez que lanço uma nova versão do site, alguns workflows no github verificam a última tag e compara com a versão no package.json, se a versão do package.json for mais nova, o workflow cria uma nova tag, gera o CHANGELOG.md, cria um novo release no github, e faz o merge das alterações na branch prod...

O Problema

Eu queria que as alterações feitas na main, sejam mergeadas na prod de modo que todos os novos commits sejam unificados em um só commit com o padrão "vX.X.X", assim:

Porem toda hora dá conflito. Gastei um bom tempo pesquisando por ai, e fuçando a documentação do Git, e cheguei nesses comandos:

release.yml

- name: Checkout to prod
  run: git checkout prod

- name: Merge "main" to "prod"
  run: git merge --squash --strategy ort --strategy-option theirs main

- name: Commit merge
  run: git commit -m "v${{ steps.get_tag.outputs.tag }}"

- name: Push prod branch
  run: git push origin prod

Funcionou por um tempo, mas hoje, deu problema de conflito de novo:

Dúvida

Existe um jeito mais simples de forçar o merge da main em prod, ignorando qualquer conflito, e com squash de commits?

Referências