Las carpetas de GitHub tienen una flecha blanca

Resuelto Ank i zle asked hace 4 años • 11 respuestas

Recientemente entré a github y veo una flecha blanca en una de mis carpetas.

ingrese la descripción de la imagen aquí

y cuando hago clic en la carpeta, no la abre. En mi máquina local, tiene contenidos, pero en github no puedo acceder a ellos. ¿Qué quiere decir esto?

Ank i zle avatar May 28 '20 10:05 Ank i zle
Aceptado

Síntoma

Compruebe si localmente tiene una .git/subcarpeta debajo de esa carpeta.

Causa

Eso significaría que la carpeta (localmente) es un repositorio Git anidado , cuyo árbol SHA1 se registra como un "gitlink" (carpeta gris con una flecha blanca recta)

Lo que luego verías en GitHub es que gitlink : SHA-1 del objeto se refiere a una confirmación en otro repositorio, representada por un nombre de carpeta vacío. Es un repositorio Git anidado.

Si ve un folder @ xxx, entonces es una entrada de submódulo , lo que significa que su propio repositorio tiene un .gitmodules, que registra, además del gitlink, la URL real del repositorio remoto.
Representa el nombre del objeto de la confirmación en la que el superproyecto espera que esté el directorio de trabajo del submódulo anidado.

En ambos casos (flecha blanca con el nombre de una carpeta, o flecha blanca con folder @ xxxel nombre de la carpeta y la versión), es un Gitlink representado un repositorio Git anidado: un marcador de posición para otro repositorio Git, por lo tanto, una carpeta vacía. Pero en el segundo caso, esa carpeta vacía sería referenciada/visible en un .gitmodulesarchivo especial.


Solución (para quitar la flecha blanca)

Para restaurar el contenido de esa carpeta:

submódulo:

A git clone --recurse-submodulesrestauraría el contenido de ese submódulo en su repositorio local (a diferencia de un repositorio Git anidado, donde su URL no se registra y el contenido de la carpeta permanecería vacío)

La flecha blanca permanecería en el repositorio remoto y folder @ versionmostraría a qué SHA1 del repositorio de submódulos hace referencia su proyecto.

Repositorio Git anidado:

Alternativamente, si no le importa el historial de esa carpeta, puede eliminar localmente su subcarpeta (asumiendo que no.git es un submódulo, lo que significa que no se hace referencia a él en un archivo en su repositorio principal), agregar, confirmar y enviar. La flecha blanca desaparecerá y podrá acceder al contenido de esa carpeta en GitHub..gitmodules

Entonces necesitarás eliminar la entrada de gitlink:

git rm --cache client_folder 
# without a trailing slash: 
# not client_folder/ but client_folder

Finalmente, puede agregar, confirmar y enviar el contenido de esa carpeta.

VonC avatar May 28 '2020 05:05 VonC

La flecha puede significar que es un submódulo.

Tu podrías intentar:

git add yourfolder

Si eso resulta en un error como:

xxx submodule xxx

aparece, puedes probar esto:

git rm --cached yourfolder

Entonces, podrías ejecutar con éxito:

git add yourfolder
yunyi hu avatar Jul 24 '2020 07:07 yunyi hu

En su máquina, si navegó hasta el directorio con la flecha e intentó ver los archivos ocultos, verá una .gitcarpeta que indica que es un repositorio. Esto significa que es un repositorio contenido dentro del repositorio externo que envió a GitHub.

La forma más sencilla de deshacerse de la flecha y empezar a ver tus archivos correctamente (en mi opinión) es eliminando la .gitcarpeta. De esa manera, deja de convertirse en un repositorio de git y vuelve a ser una carpeta normal.

Ahora, cuando ingresa a GitHub, normalmente puede acceder a la carpeta y ver todo su contenido.

sanya29 avatar Jul 15 '2020 08:07 sanya29

En mi caso:

git rm --cached portal

ls 

git status

git add --all

...

ingrese la descripción de la imagen aquí

Consule avatar Jun 30 '2021 21:06 Consule

Si desea eliminar un submódulo de los archivos de configuración de git, siga esto, recuerde que si NO desea eliminar el directorio local de ese submódulo, NO realice el Paso X:

Elimine la sección relevante del archivo .gitmodules.

Preparar los cambios de .gitmodules git add .gitmodules

Elimine la sección relevante de .git/config.

Ejecute git rm --cached path_to_submodule (sin barra diagonal).

Ejecute rm -rf .git/modules/path_to_submodule (sin barra diagonal).

Confirmar git commit -m "Submódulo eliminado"

(Arriesgado) Paso X: - Eliminar los archivos del submódulo ahora sin seguimiento rm -rf path_to_submodule

Taha Ali avatar Jul 10 '2020 13:07 Taha Ali