GitHub no me deja acceder a subcarpetas

Corto:

GitHub ha atenuado las carpetas en mi repository a las que no puedo acceder. Esto me preocupa, ¡ya que los cambios de mi código están en esas carpetas!

Largo:

Estoy desarrollando una aplicación web ZF2 y usando git para control de fuente. ZF2 es modular, por lo que en algún lugar (más probablemente con composer.phar o posiblemente con git clone) he descargado algunos modules ZF2 en subcarpetas de proyectos. Uno de estos modules ZF2 es vendor/coolcsn/csn-user . He hecho cambios en ese module ZF2.

Problema 1: cuando ejecuto el estado de git, obtengo esto:

 $ git status # On branch master # Changes not staged for commit: # modified: vendor/coolcsn/csn-user (modified content, untracked content) 

Cuando ejecuto git commit, dice "No se agregaron cambios para confirmar". Y definitivamente hice algunos cambios.

Entonces descubrí que puedo cambiar mi directory a vendor/coolcsn/csn-user , y hago git status y git commit allí. Luego puedo volver al directory raíz del proyecto y hacer un commit de git allí. Entonces, todo está bien … hasta que:

Problema 2: Hasta que haga un git push a GitHub. En GitHub, parece que todo mi proyecto está en su lugar, pero el vendor/coolcsn/csn-user no está accesible en GitHub. Está en gris. No puedo hacer clic en eso. Me hace llorar. No sé por qué y no sé qué pasa. He leído algo sobre los submodules de git. No sé si tengo submodules de git o si son algo más. No he configurado conscientemente submodules yo mismo. De cualquier manera, me preocupa que mis cambios en el submodule de GitHub no estén siendo rastreados, o si están siendo rastreados, están ocultos, no accesibles para su visualización.

Posible solución n. ° 1: pensé que podría QUITAR la carpeta .git en los submodules (si son submodules) y simplemente hacer commits directos a GitHub, con mi carpeta csn-user posiblemente no atenuada. Pero antes de hacerlo, me enteré de que no es aconsejable, y quería verificar qué está sucediendo y cómo, de todos modos, puedo usar correctamente git y GitHub y los submodules, y rastrear mis cambios en el Mismo time.

En particular, en busca de un set de pasos, instrucciones o ideas sobre cómo mantener mi repository accesible y confiable tanto con git como con GitHub.

Parece que está utilizando submodules en su repository. Ejecute el git submodule status para ver los submodules en uso.

"Problema 1", su confusión en torno a las confirmaciones se debe a la diferencia entre la realización de cambios en el repository raíz y el repository de un submodule. Parece que se está comprometiendo con un repository de submodules y luego actualizando el repository raíz para apuntar su submodule a esa nueva confirmación. Esto puede ser problemático si no está publicando esas confirmaciones porque nadie más podrá encontrarlas, luego debe verificar el repository raíz y get los submodules de los que depende.

Github correctamente no muestra el contenido de esos directorys porque son references a confirmaciones específicas en otros repositorys, que no forman parte del repository raíz en sí.

Si bien puedes verificar todos estos files en tu repository raíz, suena peligroso. al hacerlo, destruyes la información sobre el origen de los contenidos de esas subcarpetas. Nadie más (incluido usted en el futuro) podrá identificar fácilmente de dónde proviene ese contenido o qué revisión ha obtenido de esos repositorys.