fatal: 'origin' no parece ser un repositorio de git

97

Tengo un repositorio moodleen mi cuenta de Github que procedo forkeddel repositorio oficial.

Luego lo cloné en mi máquina local. Funcionó bien. Creé varias ramas (debajo de la masterrama). Hice varias confirmaciones y funcionó bien.

No sé cómo obtengo el siguiente error cuando lo hago: git push origin master

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

¿Cómo resuelvo el error sin afectar mi repositorio en Github?

Estoy usando Ubuntu 12.10

El contenido de mi .git/configdespués de hacer cat $(git rev-parse --show-toplevel)/.git/configda:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[branch "master"]
[branch "MOODLE_23_STABLE"]
[branch "MOODLE_24_STABLE"]
[remote "upstream"]
    url = git://git.moodle.org/moodle.git
    fetch = +refs/heads/*:refs/remotes/upstream/*
xan
fuente
Imprima el contenido de .git / config y agréguelo aquí
pmod
@pmod: consulte mi pregunta actualizada.
xan
La carpeta donde clonó en la máquina local debe contener la carpeta .git.
pmod
@xancat $(git rev-parse --show-toplevel)/.git/config
bereal
@pmod: Sí, lo encontré. Consulte mi pregunta actualizada.
xan

Respuestas:

116

$HOME/.gitconfig es tuyo configuración global para git.
Hay tres niveles de archivos de configuración .

 cat $(git rev-parse --show-toplevel)/.git/config

( Mencionado por Bereal ) es su local de config, local para el repositorio de que ha clonado.

también puede escribir desde su repositorio:

git remote -v

Y vea si hay algún 'origen' remoto llamado en él.

De lo contrario, si falta ese control remoto (que se crea de forma predeterminada al clonar un repositorio), puede agregarlo nuevamente:

git remote add origin url/to/your/fork

El OP menciona:

Haciendo git remote -v da:

upstream git://git.moodle.org/moodle.git (fetch) 
upstream git://git.moodle.org/moodle.git (push)

Entonces ' origin' falta: la referencia a tu bifurcación.
Consulte " ¿Cuál es la diferencia entre originy upstreamen github "?

ingrese la descripción de la imagen aquí

VonC
fuente
Hacer git remote -vda: upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push)
xan
@xan 'upstream "es el repositorio que ha bifurcado. Le falta el origen, que es su bifurcación en github. Consulte stackoverflow.com/a/15632224/6309 y stackoverflow.com/a/9257901/6309
VonC
¿Cómo cambio mi tenedor a maestro?
Wolfpack'08
@ Wolfpack'08 "fork" significa un repositorio (con múltiples ramas). El cambio a una rama es una operación local que involucra el interruptor de git: stackoverflow.com/a/57066202/6309 . En sus propias palabras, ¿qué significa para usted "cambiar un tenedor a maestro"? ¿Cambiar su rama local en su repositorio clonado local (de su bifurcación remota de GitHub)?
VonC
1
Si usted es dueño de la cesión temporal ghy remoto, simplemente empuje a la misma: git push -u ghy master.
VonC
22

Enfrenté el mismo problema cuando cambié el nombre de mi repositorio en GitHub. Traté de presionar, momento en el que obtuve el error

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Tuve que cambiar la URL usando

git remote set-url origin ssh://[email protected]/username/newRepoName.git

Después de esto, todos los comandos comenzaron a funcionar bien. Puede verificar el cambio usando

git remote -v

En mi caso, después del cambio exitoso, mostró el repositorio con el nombre correcto en la URL

[aniket@alok Android]$ git remote -v
origin  ssh://[email protected]/aniket91/TicTacToe.git (fetch)
origin  ssh://[email protected]/aniket91/TicTacToe.git (push)
Aniket Thakur
fuente
14

Es posible que la otra rama de la que intenta extraer no esté sincronizada; así que antes de agregar y eliminar el control remoto, intente (si está tratando de extraer del maestro)

git pull origin master

para mí esa simple llamada resolvió esos mensajes de error:

  • fatal: 'master' no parece ser un repositorio de git
  • fatal: no se pudo leer desde el repositorio remoto.
sivi
fuente
3

Intente crear un origen remoto primero, tal vez falta porque cambia el nombre del repositorio remoto

git remoto agregar origen URL_TO_YOUR_REPO

zdravko zdravkin
fuente
2

Esto no responde a su pregunta, pero me enfrenté a un mensaje de error similar pero por una razón diferente. Permítame hacer mi publicación por el bien de la recopilación de información.

Tengo un repositorio de git en una unidad de red. Llamemos a esta unidad de red RAID. Cloné este repositorio en mi máquina local (LOCAL) y en mi clúster de procesamiento de números (CRUNCHER). Por conveniencia, monté el directorio de usuarios de mi cuenta en CRUNCHER en mi máquina local. Entonces, puedo manipular archivos en CRUNCHER sin la necesidad de hacer el trabajo en una terminal SSH.

Hoy, estaba modificando archivos en el repositorio en CRUNCHER a través de mi máquina local. En algún momento decidí enviar los archivos, así que hice una confirmación. Agregar los archivos modificados y hacer la confirmación funcionó como esperaba, pero cuando llamé git pushrecibí un mensaje de error similar al publicado en la pregunta.

La razón fue que llamé pushdesde el repositorio de CRUNCHER en LOCAL. Entonces, todas las rutas en el archivo de configuración eran completamente incorrectas.

Cuando me di cuenta de mi falla, inicié sesión en CRUNCHER a través de la Terminal y pude presionar el compromiso.

Siéntase libre de comentar si mi explicación no se puede entender o si considera que mi publicación es superflua.

Dohn Joe
fuente
1

Tuve el mismo error en git pull origin branchname al configurar el origen remoto como ruta fs y no ssh en .git / config :

fatal: '/path/to/repo.git' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly

Fue así (esto solo funciona para usuarios en el mismo servidor de git que tienen acceso a git):

url = file:///path/to/repo.git/

Se corrigió así (esto funciona en todos los usuarios que tienen acceso al usuario de git (ssh authorizes_keys o contraseña)):

url = [email protected]:path/to/repo.git

la razón por la que lo tenía como ruta de directorio era porque el git archivos están en el mismo servidor.

Waqleh
fuente
¡En efecto! El /dominio posterior debe ser :si usa SSH. Simplemente verifique con git remote -v.
Noam Manos