Fala ai Guilherme, opa, vamos lá:
com o gulp eu faria isso através da instalação de plugins, certo?
Exatamente.
Ele iria criar tags(com o versionamento, por exemplo, indexV2.css, o v2 sendo a versão criada) no nome dos meus arquivos?
Na verdade ele iria criar os arquivos com um hash, por exemplo: ab12c01cma912mca92mc2mc.css
.
Quando o hash mudar, ele "deveria" baixar novamente os arquivos.
E se for dessa maneira, não aconteceria algum problema quando fizesse commit no meu repositório?
Não, porque quando ele gerar o novo arquivo com o hash, ele mesmo vai injetá-lo em sua página.
Todo esse processo será feito em tempo de build, o repositório seria agnóstica desse processo.
Espero ter ajudado.