fatal: "origin" non sembra essere un repository git


97

Ho un repository moodlesul mio account Github che ho forkeddal repository ufficiale.

Quindi l'ho clonato sulla mia macchina locale. Ha funzionato bene. Ho creato diversi rami (sotto il masterramo). Ho fatto diversi commit e ha funzionato bene.

Non so come ricevo il seguente errore quando lo faccio: git push origin master

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

Come risolvo l'errore senza influenzare il mio repository su Github?

sto usando Ubuntu 12.10

Il contenuto del mio .git/configdopo averlo fatto cat $(git rev-parse --show-toplevel)/.git/configdà:

[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/*

Stampa il contenuto di .git / config e aggiungilo qui
pmod

@pmod: guarda la mia domanda aggiornata.
xan

La cartella in cui hai clonato sulla macchina locale dovrebbe contenere la cartella .git.
pmod

@xancat $(git rev-parse --show-toplevel)/.git/config
bereal

@pmod: Sì, l'ho trovato. Si prega di consultare la mia domanda aggiornata.
xan

Risposte:


115

$HOME/.gitconfigè la tua configurazione globale per git.
Sono disponibili tre livelli di file di configurazione .

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

( Citato da bereal ) è il vostro locale di configurazione, locale per il repo che hai clonato.

puoi anche digitare dal tuo repository:

git remote -v

E vedi se c'è un telecomando chiamato "origine" elencato in esso.

In caso contrario, se manca quel telecomando (che viene creato per impostazione predefinita durante la clonazione di un repository), puoi aggiungerlo di nuovo:

git remote add origin url/to/your/fork

Il PO menziona:

Fare git remote -vdà:

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

Quindi ' origin' manca: il riferimento alla tua forchetta.
Vedi " Qual è la differenza tra origine upstreamin GitHub "

inserisci qui la descrizione dell'immagine


Fare git remote -vdà: upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push)
xan

.. @xan 'a monte" è il repo che avete biforcuta origine Ti manca, che è la forchetta su GitHub Vedi stackoverflow.com/a/15632224/6309 e stackoverflow.com/a/9257901/6309
VonC

Come cambio la mia forcella in master?
Wolfpack'08

@ Wolfpack'08 "fork" significa un repository (con più branch). Il passaggio a un ramo è un'operazione locale che coinvolge lo switch git: stackoverflow.com/a/57066202/6309 . Con parole tue, cosa significa per te "cambiare un fork in master"? Stai cambiando il tuo ramo locale nel tuo repository clonato locale (del tuo fork GitHub remoto)?
VonC

1
Se si possiede il GHY repo a distanza, è sufficiente premere ad esso: git push -u ghy master.
VonC

22

Ho affrontato lo stesso problema quando ho rinominato il mio repository su GitHub. Ho provato a premere a quel punto ho ricevuto l'errore

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

Ho dovuto modificare l'URL utilizzando

git remote set-url origin ssh://git@github.com/username/newRepoName.git

Dopo questo, tutti i comandi hanno iniziato a funzionare correttamente. È possibile verificare la modifica utilizzando

git remote -v

Nel mio caso, dopo il cambiamento riuscito, ha mostrato il repository rinominato corretto nell'URL

[aniket@alok Android]$ git remote -v
origin  ssh://git@github.com/aniket91/TicTacToe.git (fetch)
origin  ssh://git@github.com/aniket91/TicTacToe.git (push)

14

È possibile che l'altro ramo da cui provi a estrarre non sia sincronizzato; quindi prima di aggiungere e rimuovere il telecomando prova a (se stai cercando di estrarre dal master)

git pull origin master

per me quella semplice chiamata ha risolto quei messaggi di errore:

  • fatal: "master" non sembra essere un repository git
  • fatale: impossibile leggere dal repository remoto.

3

Prova a creare prima l'origine remota, forse manca perché cambi il nome del repository remoto

git remoto aggiungi origine URL_TO_YOUR_REPO


2

Questo non risponde alla tua domanda, ma ho riscontrato un messaggio di errore simile ma per un motivo diverso. Consentitemi di creare il mio post per motivi di raccolta di informazioni.

Ho un repository git su un'unità di rete. Chiamiamo questa unità di rete RAID. Ho clonato questo repository sulla mia macchina locale (LOCAL) e sul mio cluster di scricchiolio del numero (CRUNCHER). Per comodità ho montato la directory utente del mio account su CRUNCHER sulla mia macchina locale. Quindi, posso manipolare i file su CRUNCHER senza la necessità di eseguire il lavoro in un terminale SSH.

Oggi stavo modificando i file nel repository su CRUNCHER tramite la mia macchina locale. Ad un certo punto ho deciso di eseguire il commit dei file, quindi ho eseguito un commit. L'aggiunta dei file modificati e l'esecuzione del commit ha funzionato come previsto, ma quando ho chiamato git pushho ricevuto un messaggio di errore simile a quello pubblicato nella domanda.

Il motivo era che ho chiamato pushdall'interno del repo su CRUNCHER su LOCAL. Quindi, tutti i percorsi nel file di configurazione erano chiaramente sbagliati.

Quando ho capito la mia colpa, ho effettuato l'accesso a CRUNCHER tramite Terminal e sono stato in grado di eseguire il commit.

Sentiti libero di commentare se la mia spiegazione non può essere compresa, o trovi il mio post superfluo.


1

Ho avuto lo stesso errore su git pull origin branchname durante l'impostazione dell'origine remota come percorso fs e non ssh in .git / config :

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

Era così (funziona solo per gli utenti sullo stesso server di git che hanno accesso a git):

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

Risolto il problema in questo modo (funziona su tutti gli utenti che hanno accesso a git user (ssh authorizes_keys o password)):

url = git@domain.com:path/to/repo.git

il motivo per cui l'ho avuto come percorso di directory era perché i file git si trovano sullo stesso server.


Infatti! Il /dominio dopo deve essere :se si utilizza SSH. Basta verificare con git remote -v.
Noam Manos
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.