¿Cómo usar subsets de files de Git Repo?

Soy nuevo en el control de versiones, pero rápidamente descubro que Git es una excelente manera de administrar mi colección de escritos . Este es un caso de uso ligeramente inusual, así que tengo una pregunta sobre cuál de las funciones de Git sería la mejor para ayudarme a gestionar escritos "recostackdos" (es decir, todo el set) y para gestionar escritos "seleccionados" (es decir, subsets de la colección )

Tengo, por ejemplo, un repository que contiene 200 files .txt. Cada uno es el text de un poema. Ahora, me gustaría reservar 20 de esos files, por ejemplo, para crear un manuscrito. Mientras estoy trabajando con esos 20 files y pensando en ellos como grupo, puedo hacerles cambios. Me gustaría, por supuesto, que esos cambios se reflejen en mi repository "maestro" de los 200 files.

He visto una variedad de enfoques que podrían funcionar para esto, y estoy confundido.

  1. Lo primero que intenté fue una subcarpeta llena de enlaces simbólicos. Eso fue encantador, hasta que me di count de que Git en Windows no maneja bien los enlaces simbólicos.
  2. una branch puede manejar esto de una manera agradable, con la ayuda de merge --strategy ours
  3. Sin embargo, podría preferir un submodule , ya que me permitiría rastrear problemas para proyectos manuscritos por separado, y mantener un wiki relacionado, como un proyecto en bitbucket o donde sea. También podría hacer la queueboración un poco más fácil en el futuro. Sin embargo, escuché que hay trampas para los submodules. ¿Serán esos un problema para mí?
  4. Luego está el subtree . ¿Sería ese un mejor método para lo que tengo en mente? ¿Pueden los subtreees o submodules utilizar la misma estrategia de combinación que me gusta para las sucursales?
  5. ¿Hay otros methods potencialmente mejores para considerar?

Me puede estar perdiendo el punto. La razón de ser de git es que es fácil de ramificar. Esto esencialmente le permite crear una línea de trabajo paralela muy simple.

Pero si usted acaba de crear una twig de su maestro, clasifique sus 20 poemas en una carpeta, por ejemplo, y luego comprométase con esta nueva twig (manteniendo su universo paralelo de sus 20 poemas) y luego fusione esto en el maestro cuando desee estos cambios en estar registrado en su twig principal.

 $ git branch manuscript $ git checkout manuscript $ mkdir my20poems $ cp *.poems my20poems $ git add my20poems # make your changes, now commit them in my commit graph $ git commit -m "did some work" # now I want these changes in master $ git checkout master $ git merge manuscript #or even use the --no-ff switch if you want the branch history kept 

siempre puede volver a visitar cualquiera de sus confirmaciones previas para que se conserven todos sus estados comprometidos.

 $ git log --oneline --decorate --graph --all