Primeiro, quero salientar que no git, tudo pullé literalmente uma operação de ramificação e tudo pushé uma mesclagem. A mastermáquina on de um desenvolvedor é uma ramificação completamente separada da masterem um repositório central que você compartilha, com a mesma posição de uma perspectiva técnica. Ocasionalmente, vou renomear minha versão local upstreamou algo assim, se ela se adequar melhor aos meus propósitos.
Aponto isso porque muitas organizações pensam que estão usando filiais com mais eficiência do que o seu colega, quando na verdade estão fazendo pouco mais do que criar um nome adicional para uma filial ao longo do caminho, que não será salva na história. Se o seu colega está confirmando recursos em uma confirmação atômica, é tão fácil voltar como uma confirmação de mesclagem de uma ramificação de recursos. A grande maioria dos ramos de recursos deve ter uma vida útil muito curta e, freqüentemente, mesclada de qualquer maneira.
Dito isto, os principais inconvenientes de seu estilo de trabalho são duplos. Primeiro, torna muito difícil colaborar em um recurso inacabado. No entanto, não seria difícil criar uma filial apenas nos momentos em que a colaboração é necessária.
Segundo, torna a revisão antes da mesclagem muito difícil. Nesse ponto, você não precisa convencê-lo. Você pode adotar uma ferramenta como github, gerrit ou gitlab e exigir revisões de código de solicitação pull e passou por testes automatizados para todas as mesclagens. Se você não está fazendo algo assim, francamente, você não está usando o git em todo o seu potencial, e não é de admirar que seu colega não veja esse potencial.