Exportar uma pasta para um repositório Git separado

Sempre quis dividir sua base de código em várias partes e manter todos os commits?

Isso é mais fácil do que você pode pensar, graças à grandiosidade do Git, tudo o que você precisa fazer é:

  • Clone o repositório
  • Corre git filter-branch
  • Empurre para o novo controle remoto, pronto!

Os comandos

Em seu shell, tudo isso seria (observe os marcadores de posição):

$ git clone <old-repo-remote> my-repo-folder
$ cd
my-repo-folder
$ git filter
-branch --subdirectory-filter <folder-to-export> -- --all
$ git remote rm origin

$ git remote
add origin <new-repo-remote>
$ git push
--tags origin master

Uma advertência: as tags podem não ser reescritas corretamente. Nesse caso, eles ainda estarão apontando para os commits errados e você notará que tem uma árvore de ramos estranha. Basta remover ou recriar as tags e tudo voltará ao normal.