lista - git tag
Subdirectorios de Checkout en Git? (6)
Como su edición señala, puede usar dos ramas separadas para almacenar los dos directorios separados. Esto los mantiene a los dos en el mismo repositorio, pero aún no puede tener confirmaciones que abarquen ambos árboles de directorios. Si tiene un cambio en uno que requiere un cambio en el otro, tendrá que hacer eso como dos confirmaciones separadas, y abre la posibilidad de que un par de comprobaciones de los dos directorios se desincronicen.
Si desea tratar el par de directorios como una unidad, puede usar ''wordpress / wp-content'' como la raíz de su repositorio y usar el archivo .gitignore en el nivel superior para ignorar todo menos los dos subdirectorios de interés. Esta es probablemente la solución más razonable en este punto.
Se espera que haya escasez de cajas desde hace dos años, pero todavía no hay señales de ellos en el repositorio de desarrollo de git, ni ninguna indicación de que los cambios necesarios lleguen allí. No contaría con ellos.
¿Es posible consultar los subdirectorios de un repositorio en Git?
Imagina que estoy configurando una nueva instalación de WordPress. Crearé dos nuevos directorios para mi complemento y personalización de tema:
wordpress/wp-content/plugins/myplugins/
-
wordpress/wp-content/themes/mytheme/
Quiero mantener estos directorios a través de Git. En Subversion, lograría esto teniendo trunk/myplugins/
y trunk/mytheme/
directories y revisando subdirectorios. ¿Tiene Git una manera de lograr la misma tarea usando un único repositorio?
Podría estar perdiendo el barco en algún paradigma de Git, como un usuario SVN desde hace mucho tiempo con poca exposición a Git.
Editar: Múltiples ramas que almacenan diferentes contenidos es una forma interesante de manejar esto.
De hecho, las cajas de pago "angostas" o "parciales" o "dispersas" se encuentran en desarrollo actual y pesado para Git. Tenga en cuenta que aún tendrá el repositorio completo en .git
. Entonces, las otras dos publicaciones son actuales para el estado actual de Git, pero parece que podremos hacer compras dispersas eventualmente. Consulte las listas de correo si le interesan más detalles: están cambiando rápidamente.
No hay una manera real de hacer eso en git. Y si no hará cambios que afecten a ambos árboles a la vez como una sola unidad de trabajo, no hay una buena razón para usar un único repositorio para ambos. Pensé que echaría de menos esta característica de Subversion, pero descubrí que la creación de repositorios tiene muy poca carga administrativa administrativa (simplemente porque los repositorios se almacenan junto a su copia de trabajo, en lugar de requerir que busque explícitamente un lugar fuera del copia de trabajo) que me acostumbré a hacer muchos repositorios pequeños de un solo propósito.
Si insistes (o realmente lo necesitas), puedes hacer un repositorio git con solo myplugins
y myplugins
directorios y myplugins
desde la instalación de WordPress.
MDCore escribió:
hacer un compromiso para, por ejemplo, mytheme incrementará el número de revisión para myplugin
Tenga en cuenta que esto no es una preocupación para git, si decide colocar ambos directorios en un único repositorio, porque git elimina por completo el concepto de aumentar monótonamente los números de revisión de cualquier forma.
El único criterio para determinar qué cosas juntar en un único repositorio en git es si constituye una sola unidad, es decir. en su caso, si hay cambios en los que no tiene sentido mirar las ediciones en cada directorio de forma aislada. Si tiene cambios donde necesita editar archivos en ambos directorios a la vez y las ediciones van juntas, deben ser un repositorio. Si no, entonces no los englobes juntos.
Git realmente quiere que uses repositorios separados para entidades separadas.
Los submódulos no abordan el deseo de mantener ambos directorios en un repositorio, porque en realidad exigirían tener un repositorio separado para cada directorio, que luego se juntan en otro repositorio usando submódulos. Peor aún, dado que los directorios dentro de la instalación de WordPress no son subdirectorios directos del mismo directorio y también forman parte de una jerarquía con muchos otros archivos, usar los repositorios por directorio como submódulos en un repositorio unificado no ofrecería ningún beneficio, porque el el repositorio no reflejaría ningún caso / necesidad de uso.
No puede verificar un solo directorio de un repositorio porque todo el repositorio está manejado por la única carpeta .git en la raíz del proyecto en lugar de la miríada de directorios .svn de subversión.
El problema de trabajar con complementos en un único repositorio es que al comprometerse a, por ejemplo, mytheme , se incrementará el número de revisión para myplugin , por lo que incluso en subversión es mejor usar repositorios separados.
El paradigma de subversión para subproyectos es svn:externals que se traduce un tanto a submodules en git (pero no exactamente en caso de que haya utilizado svn: externals antes).
Una cosa que no me gusta de los checkouts dispersos es que si desea consultar un subdirectorio que tiene unos pocos directorios, su estructura de directorio debe contener todos los directorios que lo conducen.
La forma en que lo soluciono es clonar el repositorio en un lugar que no es mi área de trabajo y luego crear un enlace simbólico en mi directorio del área de trabajo al subdirectorio en el repositorio. Git funciona así bastante bien porque cosas como el estado de git mostrará los archivos de cambio relativos a su directorio de trabajo actual.
Los pagos dispersos ahora están en Git 1.7 .
También vea la pregunta " ¿Es posible hacer una salida dispersa sin verificar todo el repositorio primero? ".
Tenga en cuenta que las cajas dispersas aún requieren que descargue todo el repositorio, incluso aunque algunos de los archivos que descargue Git no terminen en su árbol de trabajo.