Git push: "fatal 'origin' non sembra essere un repository git - fatal Could not read from remote repository."


119

So che sono già state poste domande simili.

Ma credo che il mio problema sia dovuto a un errore che ho fatto in precedenza e quindi è diverso: lasciami spiegare.

Tutto stava funzionando senza intoppi, come potevo:

  • git add . tutti i file dal mio repository locale.
  • git commit -m "message here" per aggiungere messaggi ai miei commit.
  • git push origin master per caricare i miei file su GitHub.
  • git push heroku master per caricare i miei file su Heroku.

Tuttavia, a un certo punto, ho creato un nuovo ramo chiamato localmente add-calendar-modelnel caso in cui i passaggi successivi dello sviluppo dell'app fossero andati a sud ...

... che è esattamente quello che è successo.

Tuttavia, nonostante molti tentativi, non sono riuscito a ottenere il codice iniziale, ovvero il codice precedente alla creazione del nuovo ramo, dal masterramo al mio repository locale.

Quindi, ho deciso di eliminare manualmente tutti i file dal mio repository locale e il git clonemio masterramo da GitHub.

In questo modo, ho recuperato tutti i miei file, ma ora non posso più eseguire il push del repository remoto.

Ogni volta che provo a eseguire git push origin add-calendar-modelo git push origin master, ricevo il seguente errore:

fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Non sono molto a mio agio con Git e GitHub, come avrai già intuito, e devo ammettere che non ho la più pallida idea di come risolverlo.

Qualche idea?


Ho avuto un errore simile, ma il mio problema era che avevo inizializzato git nella directory principale della cartella corrente che stavo provando. Nel caso in cui qualcuno stia ancora affrontando, può guardare dove è stato inizializzato git e quindi riprovare.
Himanshu Kriplani

Risposte:


215

Innanzitutto, verifica che la tua origine sia impostata eseguendo

git remote -v

Questo dovrebbe mostrarti tutti i telecomandi push / fetch per il progetto.

Se viene restituito senza output, passare all'ultimo blocco di codice.

Verifica nome / indirizzo remoto

Se questo ritorna mostrando che hai telecomandi impostati, controlla che il nome del telecomando corrisponda al telecomando che stai usando nei tuoi comandi.

$git remote -v
myOrigin ssh://git@example.com:1234/myRepo.git (fetch)
myOrigin ssh://git@example.com:1234/myRepo.git (push)

# this will fail because `origin` is not set
$git push origin master

# you need to use
$git push myOrigin master

Se desideri rinominare il telecomando o modificare l'URL del telecomando, dovrai prima rimuovere il vecchio telecomando, quindi aggiungere quello corretto.

Rimuovi il vecchio telecomando

$git remote remove myOrigin

Aggiungi telecomando mancante

È quindi possibile aggiungere il telecomando corretto utilizzando

$git remote add origin ssh://git@example.com:1234/myRepo.git

# this will now work as expected
$git push origin master

Ha funzionato per me senza il ssh://davantigit@example.com:1234/myRepo.git
Carol-Theodor Pelu

Stavo leggendo questa domanda se potessi aiutare anche con il nuovo errore di push del repository?
StaticVariable

12

Come ha affermato Matt Clark sopra

Tuttavia, l'origine potrebbe non essere impostata, quindi salta il passaggio di eliminazione e il semplice tentativo di aggiungere può chiarirlo.

git remote add origin <"clone">

Dove "clone" sta semplicemente andando nel tuo repository GitHub e copiando l '"URL clone HTTPS" e incollato in GitBash


3

Assicurati che il file di configurazione in .git sia corretto ... Controlla l'URL e assicurati di utilizzare il protocollo corretto per le tue chiavi ... ProjectWorkspace / .git / config

  ~Wrong url for git@bitbucket
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = gitbucket.org:Prezyack/project-one-hello.git
    fetch = +refs/heads/*:refs/remotes/origin/*

 ~Wrong URL for SSH...
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = https://emmap1@bitbucket.org/emmap1/bitbucketspacestation.git
[branch "master"]
    remote = origin
    merge = refs/heads/master

Stiamo guardando l'URL ... ad esempio: per bitbucket, aspettati git@bitbucket.org .... Se è gitbucket.org. apportare le modifiche necessarie .. SALVA Prova a premere di nuovo.


1

Per me funziona.

git remote add origin https://github.com/repo.git
git push origin master

aggiungere l'URL del repository all'origine nella directory di lavoro locale


0

Viene visualizzato un errore simile durante l'estrazione delle modifiche dall'origine. Se stai provando in Intellij dalle opzioni di menu, il pull potrebbe non funzionare direttamente.

Vai al terminale e digita questo comando e dovrebbe funzionare: git pull origin master


0

Ho avuto lo stesso problema. Quando ho controllato il mio file di configurazione ho notato che "fetch = + refs / heads / : refs / remotes / origin / " era sulla stessa riga di "url = Z: /GIT/REPOS/SEL.git" come mostrato:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git     fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

All'inizio non pensavo che questo avrebbe avuto importanza ma dopo aver visto il post di Magere ho spostato la linea e questo ha risolto il problema:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

0

se aggiungi il tuo repository remoto utilizzando git clone, segui i passaggi: -

git clone <repo_url> poi

git init

git add * * significa aggiungere tutti i file

git commit -m 'your commit'

git remote -vper controllare qualsiasi ramo eseguito o meno, altrimenti non viene visualizzato nulla, quindi aggiungiamo o recuperiamo il repository. " prendi prima" . Devi correre git pull origin <branch> o git pull -r origin <branch>prima di una spinta successiva .

poi

git remote add origin <git url>
 git pull -r origin master
git push -u origin master```

0

Questo è il modo in cui ho aggiornato il ramo principale

$ git remote -v
$ git remote rm origin
$ git commit -m "your commit"
$ git remote add origin https://github.com/user/repo.git
$ git push -f origin master

1
Prova ad aggiungere spiegazioni alla tua risposta in un modo che affronti la domanda e cerchi di aiutare un lettore a capire. Attualmente, si legge solo come un aneddoto e non funzionerebbe nemmeno nel caso generale (ad esempio, https://github.com/la radice del sito Web e un repository git)
Kache

-3

A volte non hai un REF locale per spingere quel ramo indietro all'origine.
Provare

git push origin master:master

Questo indica esplicitamente a quale branch inviare il push

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.