GIT_DISCOVERY_ACROSS_FILESYSTEM no establecido


98

He buscado y leído algunas publicaciones, pero mi problema no es el mismo que el descrito. Así que aquí está el problema: usar git clone en la carpeta debajo de la partición externa del disco funciona bien, pero todos los comandos de git fallan. no se puede ejecutar git status o git log ... siempre obtengo un error

fatal: No es un repositorio de git (o cualquier padre hasta montar parent / home / kozi) Deteniéndose en el límite del sistema de archivos (GIT_DISCOVERY_ACROSS_FILESYSTEM no establecido).

Por favor, ayúdame..

.
├── abi
├── biónico
├── de arranque
├── build
├── cts
├── dalvik
├── desarrollo
├── dispositivo
├── docs
├── externos
├── frameworks
├── gdk
├─ ─ hardware
├── libcore
├── libnativehelper
├── ndk
├── paquetes
├── pdk
├──
precompilaciones ├──
.repo ├── sdk
├── sistema
└── herramientas


¿Cuál es la salida de treedentro de su repositorio de git?
Crónica

ok, ¿cuál es la salida de ls .git? Puede pegar salidas más largas en pastebin.com y vincularlas.
Crónica

pastebin tiene límites de tamaño, subí el archivo aquí
BB755

¿cuál es la salida de ls .git?
Crónica

@Chronial, ¿te refieres a la salida .git de cada carpeta anidada en el árbol? ¿O hay algún directorio específico que quiera que le proporcione? En la carpeta raíz solo puedo ver .repo y no hay .git
BB755

Respuestas:


140

Simplemente escriba git initen su línea de comando y presione enter. Luego ejecute su comando nuevamente, probablemente estaba ejecutando git remote add origin [your-repository].

Eso debería funcionar, si no es así, házmelo saber.


Sin embargo, tenga en cuenta que en el demencial escenario anterior, se requería el parámetro --force para realinear el proyecto local y la rama remota correspondiente. Pude hacer esto de manera segura: 1) haciendo una rama para la versión local de localRepo3 (después de git init): git checkout -b local_version ; luego 2) configurar la rama para rastrear el origen (su comando: git remote add origin [your-repository] ); luego 3) git checkout remote_branch --force ; luego 4) una fusión de la rama de versión local en rama_remota. Pero git remote add origin [your-repository] seguía siendo el héroe aquí :)
Andrew Faulkner

GIT_DISCOVERY_ACROSS_FILESYSTEM no configurado - en heroku.? ¿Puedes guiarme?
Sajjad Murtaza

Obtendrá el mismo error si, por alguna razón, los archivos .git / index o .git / HEAD no se pueden escribir usted mismo. Vuélvelos a comer y el problema desaparece.
C. Kelly

12

corrió a través de esta página y varias como todas hablando sobre el mensaje GIT_DISCOVERY_ACROSS_FILESYSTEM no configurado. En mi caso, nuestro administrador de sistema había decidido que el directorio apache2 debía estar en un sistema de archivos montado en caso de que el disco del servidor dejara de funcionar y tuviese que reconstruirse. Encontré esto con un simple comando df:

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:48:43)--> df -h
Filesystem                           Size  Used Avail Use% Mounted on
<snip>
/dev/mapper/vgraid-lvapache           63G   54M   60G   1% /etc/apache2
<snip>

Para solucionar esto, simplemente puse lo siguiente en el shell del usuario root (ya que son los únicos que necesitan estar mirando las revisiones de etckeeper:

export GIT_DISCOVERY_ACROSS_FILESYSTEM=1

y todo fue muy bien ... mucha alegría.

Más notas:

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:48:54)--> export GIT_DISCOVERY_ACROSS_FILESYSTEM=0

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:35)--> git status
On branch master
nothing to commit, working tree clean

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:40)--> touch apache2/me

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:45)--> git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    apache2/me

nothing added to commit but untracked files present (use "git add" to track)

-->  UBIk  <--:root@ns1:[/etc]
--PRODUCTION--(16:57:47)--> cd apache2

-->  UBIk  <--:root@ns1:[/etc/apache2]
--PRODUCTION--(16:57:50)--> git status
fatal: Not a git repository (or any parent up to mount point /etc/apache2)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
-->  UBIk  <--:root@ns1:[/etc/apache2]
--PRODUCTION--(16:57:52)--> export GIT_DISCOVERY_ACROSS_FILESYSTEM=1

-->  UBIk  <--:root@ns1:[/etc/apache2]
--PRODUCTION--(16:58:59)--> git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    me

nothing added to commit but untracked files present (use "git add" to track)

Con suerte, eso ayudará a alguien en algún lugar ... -wc


6

Para completar la respuesta aceptada, tenía el mismo problema. Primero especificó el control remoto

git remote add origin https://github.com/XXXX/YYY.git

git fetch 

Entonces obtén el código

git pull origin master

1

Entré en este problema cuando copio mi repositorio local.

sudo cp -r original_repo backup_repo
cd backup_repo
git status
fatal: Not a git repository (or any parent up to mount point /data)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Lo intenté git initcomo sugirió alguna respuesta, pero no funciona.

sudo git init
Reinitialized existing Git repository in /data/HQ/SC_Educations/hq_htdocs/HQ_Educations_bak/.git/

Lo resolví cambiando el propietario del repositorio.

sudo chown -R www:www ../backup_repo
git status
# On branch develop
nothing to commit, working directory clean

0

Verifique si realmente está bajo un repositorio de github.

Entonces, la lista de .git / debería darle resultados ... de lo contrario, puede estar en algún nivel fuera de su repositorio.

Ahora, acceda a su repositorio y estará listo.


0

En resumen, git está tratando de acceder a un repositorio que considera en otro sistema de archivos y para decirle explícitamente que está de acuerdo con esto, debe establecer la variable de entorno GIT_DISCOVERY_ACROSS_FILESYSTEM = 1

Estoy trabajando en un entorno CI / CD y uso un git acoplado, así que tengo que configurarlo en ese entorno docker run -e GIT_DISCOVERY_ACROSS_FILESYSTEM=1 -v $(pwd):/git --rm alpine/git rev-parse --short HEAD\'

Si tiene curiosidad: Arriba monta $ (pwd) en el contenedor de git docker y pasa "rev-parse --short HEAD" al comando git en el contenedor, que luego ejecuta contra los volúmenes montados.


-1

Para el código fuente de Android con repositorio, creo que debería usar REPO. si realmente desea usar git, debe saber si el proyecto tiene un directorio .git con ls -a. O tiene que ingresar al directorio del subproyecto que debe incluir el .git.


-1

El problema es que no se encuentra en el directorio correcto. Una solución simple en Jupyter es hacer el siguiente comando:

  1. Vaya al directorio de GitHub para su instalación
  2. Ejecute el comando de GitHub

Aquí hay un comando de ejemplo para usar en Jupyter:

%%bash
cd /home/ec2-user/ml_volume/GitHub_BMM
git show

Tenga en cuenta que debe ejecutar los comandos en la misma celda.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.