Haz que los subdirectores del repository git tengan sus propios repositorys git

Como resultado, esta pregunta hizo lo mismo Separar (mover) subdirectory en el repository separado de Git

Decidí aprender git y mantener mi tarea de progtwigción en un git repo. Pienso que fue una buena idea. Ahora me pregunto algo:

Tenía un solo repository git con un subdirectory para cada tarea. Me pregunto si existe una manera sensata de hacer cada uno de los subdirectorys en su propio repository git, conservando el historial asociado con esos files. Parece que "git filter-branch –uploadectory-filter" es parte de la respuesta, pero no estoy seguro de qué hacer.

EDITAR

Para aclarar: mi estructura es así

 superdir  
   .git  
   subdir1
   subdir2
   subdir3

Me gustaría que mi estructura sea más como esta

 superdir    
   subdir1
     .git
   subdir2
     .git
   subdir3
     .git

¿Puedo hacerlo?

Probablemente estés buscando submodules de git , pero simplemente cambiaría tu layout para que el nivel superior no sea ​​un repository de git y solo tengas los repos de subdirectorys gestionados de forma independiente.

Use un script como el siguiente:

 #! /bin/bash superdir=file:///tmp/superdir subdirs=(subdir1 subdir2 subdir3) for dir in ${subdirs[@]}; do echo "Rewriting $dir..." git clone --quiet $superdir "$dir" || exit 1 cd "$dir" # workaround for git-1.6.4.2 on Cygwin 1.7 # otherwise, git-filter-branch complains about a dirty branch git reset --hard -q git filter-branch --subdirectory-filter "$dir" HEAD >/dev/null git reflog expire --expire=0 --all git gc --quiet --prune=0 cd .. done 

Comenzando con un superdir repo cuya estructura es

 $ ls -a.  *
 .:
 .  ..git subdir1 subdir2 subdir3

 subdir1:
 .  .. file1

 subdir2:
 .  .. file2

 subdir3:
 .  .. file3

el resultado es

 $ ls -a.  *
 .:
 .  .. subdir1 subdir2 subdir3

 subdir1:
 .  ..git file1

 subdir2:
 .  ..git file2

 subdir3:
 .  ..git file3

¿Por qué no colocar cada class como su propio repository y cada asignación como su propia sucursal? Cuando miro hacia atrás en mi trabajo universitario, así es como organizaría las cosas.