Realmente não há uma boa maneira de fazer isso. O Git não suporta checkouts parciais. Então, você mantém tudo em um repositório e verifica tudo de uma vez, ou usa submodules e mantém o arquivo em movimento no mínimo. Veja também link no último ponto.