git: poner una twig en un subdirectory

Tengo un repository git (en github.com) con dos twigs: master y gh-pages. Me gustaría tener la twig gh-páginas en un subdirectory, por lo que no es necesario cambiar las twigs cada vez.

repo/ (content of the master branch) gh-pages/ (content of the gh-pages branch) 

Es eso posible ?

Así no es como las cosas están diseñadas para funcionar. En teoría, podría clonar el repository dentro de un subdirectory de su clon original y marcar ese directory como excluido del repository de nivel superior, pero ¿no sería mucho más sencillo simplemente verificarlo en un directory completamente diferente en lugar de hacerlo en un subdirectory?

Es decir…

 /repo/master/(clone on master branch) 

y luego otro clon que está en la otra twig

 /repo/gh-pages/(clone on gh-pages branch) 

Puede estar buscando la opción de combinación de subtree .

Le permitirá verificar una twig no relacionada en un subdirectory de otra y luego fusionarse entre ellas. Sin embargo, todavía tendría que pagar gh-páginas y fusionarse en cambios desde el repository principal antes de que los empujes se activaran en GitHub.

También puede verificar gh-páginas como un submodule de su twig principal si le conviene más.

En general, con el control de versiones, no es una buena idea combinar varios proyectos en un único repository. Por ejemplo, ¿qué pasa si alguien quiere bifurcar su repository, pero no aloja su copy en GitHub? Entonces el directory gh-pages sería completamente inútil para ellos. Incluso si alojan la suya en GitHub, el directory gh-pages podría ser irrelevante para ellos.

Me doy count de que la forma de hacerlo de GitHub va en contra de este consejo, de alguna forma (después de todo, a pesar de que están en diferentes twigs, todavía están en el mismo repository). Sin embargo, las twigs en este caso no tienen ninguna relación (no comparten ningún historial) por lo que desde una perspectiva práctica, es como si estuvieran en depósitos separados. Si alguien clona su repository y no desea la twig gh-pages , puede eliminarlo y tendrá cero efecto en el master .

Comenzando con git 2.5, puede tener ambas twigs comprobadas al mismo time en diferentes directorys . Consulte https://github.com/blog/2042-git-2-5-including-multiple-worktrees-and-triangular-workflows . Configuración a través de git worktree add -b gh-pages ../gh-pages origin/gh-pages .

Si desea que el contenido de un subdirectory de su pago master se ponga en gh-pages en github, utilice el script provisto en https://github.com/X1011/git-directory-deploy .

git subtree truco del git subtree , pero requiere que el master tenga todo el contenido de gh-pages asignado, lo que no es ideal en este caso. Mucho mejor y más simple es

  1. Crea un nuevo directory en ./repo/gh-pages/
  2. Ponga una línea en .gitignore para eso ( gh-pages )
  3. cd gh-pages/ , git init y git checkout -b gh-pages , creando un control remoto git independiente allí

También puedes git clone directamente en ./gh-pages/ con solo la twig que quieras.

Las twigs en git son pointers a commits (que se mueven), por lo que no es posible tener una twig como subdirectory.

Para ser justos, git co gh-pages no es mucho más difícil que cd ../gh-pages