corey
Estoy siguiendo este tutorial. Todo funciona bien hasta que ejecuto esto en mi máquina local (después de reemplazar el $VARIABLE
s con sus valores reales):
git remote add nfsn ssh://$USERNAME@$SERVER/home/private/git/$REPONAME.git
Recibo el siguiente mensaje de error:
fatal: no es un repositorio de git (ni ninguno de los directorios principales): .git
¿Cómo supero este paso?
Obtendrá este error si intenta usar un comando de Git cuando su directorio de trabajo actual no está dentro de un repositorio de Git. Esto se debe a que, de forma predeterminada, Git buscará un .git
directorio del repositorio (¿dentro de la raíz del proyecto?), como se señala en mi respuesta a “Git no mostrará el registro a menos que esté en el directorio del proyecto”:
De acuerdo con la documentación oficial de Linux Kernel Git,
GIT_DIR
es [an environment variable] puesto a buscar un.git
directorio (¿en el directorio de trabajo actual?) por defecto:Si el
GIT_DIR
la variable de entorno está configurada, luego especifica una ruta para usar en lugar de la predeterminada.git
para la base del repositorio.
Tendrás que cd
en el repositorio/copia de trabajo, o no inicializó ni clonó un repositorio en primer lugar, en cuyo caso necesita inicializar un repositorio en el directorio donde desea colocar el repositorio:
git init
o clonar un repositorio
git clone <remote-url>
cd <repository>
-
+1 por mencionar GIT_DIR. dentro de los ganchos en un repositorio básico, GIT_DIR se establece en ‘.’ en lugar de ‘.git’.
– commonpike
06/09/2014 a las 11:40
-
+1 para
git init
. Después de leer su respuesta, usé esto varias veces en repositorios que hizo clon, pero no fueron reconocidos. Por lo tanto, parece ser seguro cuando se ejecuta desde un árbol de directorios que se supone que es ungit repository
tiene todos los archivos en el directorio git, pero afirma no serfatal: Not a git repository (or any parent up to mount point
– ElderDelp
29 de diciembre de 2017 a las 19:03
-
@commonpike de hecho: mi gancho no funcionó por eso, quería sacar otro repositorio cuando algo fue empujado a mi repositorio desnudo. Tuve que configurar GIT_DIR en “…/.git”
– rambi
15 de junio de 2021 a las 10:35
-
Mi archivo HEAD estaba corrupto por algún motivo, así que tuve que restaurarlo y solucioné el problema.
– Esteban
20 de diciembre de 2018 a las 12:16
-
Eres genial amigo. Ahorré una tonelada de mi tiempo
– Vaibhav Sah
24 de enero de 2019 a las 13:09
-
Tenía Visual Studio abierto durante un git rebase y Visual Studio notó un cambio de archivo y poco después tuve una pantalla azul de muerte. Después de reiniciar, .git/HEAD se llenó con NULLS y cuando los reemplacé con un hash completo (5621afeffbabed40e3f386676068c45643644b7d) leído desde algún lugar como .git\refs\remotes\origin\master, git comenzó a funcionar nuevamente. También necesitaba stackoverflow.com/questions /1115854/… ya que esto me dijo que eliminara .git/index y necesitaba eliminar .git/index.lock antes de reiniciar git. Bien ahora
– Iván
8 de marzo de 2019 a las 11:28
-
Casi pierdo la esperanza de recuperar mi trabajo. Simplemente copié y pegué tu solución e hizo magia. Gracias
– Mukesh Kumar
26 oct 2019 a las 19:26
-
Ese fue el problema para mí también. También tuve cambios locales en muchos archivos y esto me ahorró trabajo adicional. ¡Gracias!
– Ady Moldo
25 de noviembre de 2020 a las 8:12
NOTA: esto no responde al problema común, que era un problema de OP, sino a un problema diferente en el que puede aparecer este mensaje de error. No tenía ganas de hacer una nueva pregunta solo para escribir esta respuesta, dígame si debería hacer eso en su lugar: P
Llegué a la situación, muy probablemente debido a alguna corrupción de cierto bloqueo que tuve, que recibí este error incluso cuando .git
existió
smar@aaeru ~/P/Nominatim> git status
fatal: Not a git repository (or any of the parent directories): .git
smar@aaeru ~/P/Nominatim [128]> ls .git
COMMIT_EDITMSG config* FETCH_HEAD HEAD index logs/ modules/ objects/ ORIG_HEAD packed-refs
Como no tenía nada que realmente necesitara ser preservado, simplemente fui con el método ficticio e hice…
smar@aaeru ~/P/Nominatim [128]> git init
Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/
Sin embargo, todavía no funciona, como por ejemplo git log
devoluciones fatal: bad default revision 'HEAD'
. Controles remotos fueron allí sin embargo, así lo hice git fetch --all
y luego solo git reset --hard origin/master
para llegar al estado en que se encontraba el repositorio anteriormente.
Tenga en cuenta que si hay algunos cambios no confirmados, puede verlos con git status
, git diff
y así. entonces solo git diff yourfile > patch
antes de ejecutar el reinicio.
Al menos para mí reflog (git reflog
) desapareció por completo. Por lo tanto, si reinicia y hay algunos cambios que desea evitar, no estoy seguro de que pueda recuperarlos después del reinicio. Por lo tanto, asegúrese de tener una copia de seguridad de todos los cambios que no puede perder, en última instancia, simplemente copiando el clon antes de intentar esto.
-
Tengo el problema. E intenté de la manera mencionada por @Smar, pero el mismo resultado fue “fatal…”. Entonces, ¿qué sigue a hacer? ¿cualquier sugerencia?
– Aarón
31 de octubre de 2018 a las 2:43
-
Este problema ocurrió al usar Visual Studio,
git init
ygit fetch --all
solucionó el problema.– Morse
9 de noviembre de 2018 a las 22:18
-
Parece que el problema es de hace mucho tiempo, pero aún sucede. Estaba usando VS 2022 para actualizar proyectos a .Net más nuevo – 4.7.2 y de repente
git
los comandos dejaron de funcionar. los.git
carpeta estaba allí. y usandogit init
ygit fetch --all
arregló el problema Otra cosa que podría causar el problema es que estaba en una rama que se fusionó/eliminó en el control remoto.– mihkov
29 de julio a las 12:23
isaacs
Este problema se me ocurrió después de que moví la ubicación de un proyecto git en el sistema de archivos. Cuando ejecuté algunos comandos de git, ocurrió el error, por ejemplo:
$ git status
fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis
encontré en /home/rospasta/path_old/gitprojecta/.travis/.git
se escribió la ruta absoluta de la antigua ubicación del proyecto. La actualización manual de esta ruta de la nueva ubicación resolvió el problema para mí.
Entonces, mi problema puede o no ser un problema de git, pero HTH.
-
Tengo el problema. E intenté de la manera mencionada por @Smar, pero el mismo resultado fue “fatal…”. Entonces, ¿qué sigue a hacer? ¿cualquier sugerencia?
– Aarón
31 de octubre de 2018 a las 2:43
-
Este problema ocurrió al usar Visual Studio,
git init
ygit fetch --all
solucionó el problema.– Morse
9 de noviembre de 2018 a las 22:18
-
Parece que el problema es de hace mucho tiempo, pero aún sucede. Estaba usando VS 2022 para actualizar proyectos a .Net más nuevo – 4.7.2 y de repente
git
los comandos dejaron de funcionar. los.git
carpeta estaba allí. y usandogit init
ygit fetch --all
arregló el problema Otra cosa que podría causar el problema es que estaba en una rama que se fusionó/eliminó en el control remoto.– mihkov
29 de julio a las 12:23
der_michael
$ git status
fatal: Not a git repository:
Simplemente escriba lo siguiente en su shell cmd o git o en cualquier otra terminal:
$ git init
git init
pero también asegúrese de que ninguno de sus subdirectorios tenga su propio.git
carpeta–James Oravec
14 de diciembre de 2015 a las 17:44