Como tornar o padrão --squash em uma mesclagem?

Usamos ramificações separadas para correções e recursos não triviais. As ramificações são mantidas sincronizadas com o mestre, realizandogit checkout <x>; git merge master.

Notei que ao mesclar, o git polui os arquivos de log com várias mensagens não relevantes. Por exemplo, em vez de um único "Merge <X> into Master" ou "Merge Master into <X>", o git adicionará todas as mensagens de confirmação. É um problema de governança (processos de processos de areia) no Master, porque os bugs que podem estar presentes em uma ramificação durante o desenvolvimento sãonão e eramnão sempre presente no ramo Master.

Pior, os comportamentos são diferentes entre os ramos e o mestre. Ao mesclar mestre em ramificações, há uma entrada de log gerada semelhante a "Mesclar mestre em <X>". No entanto, ao mesclar uma ramificação no mestre, não há "Mesclar <X> no mestre". De acordo com os logs, é como se o ramo de desenvolvimento nunca existisse e a mesclagem nunca ocorresse.

Aprendi que tinha que fazer algo especial para fazer o git se comportar como esperado; nomeadamenteComo usar o git merge --squash? (Seu git clássicomodo de operação: pegue algo simples e dificulte).

Minha pergunta é: como faço para--squash a ação padrão durante uma mesclagem?

questionAnswers(1)

yourAnswerToTheQuestion