Git push: «fatal 'origin' ne semble pas être un dépôt git - fatal Impossible de lire à partir du dépôt distant.”


119

Je sais que des questions similaires ont déjà été posées.

Mais, je pense que mon problème est dû à une erreur que j'ai faite précédemment et est donc différent: laissez-moi vous expliquer.

Tout fonctionnait bien, comme je pouvais:

  • git add . tous les fichiers de mon référentiel local.
  • git commit -m "message here" pour ajouter des messages à mes commits.
  • git push origin master pour télécharger mes fichiers sur GitHub.
  • git push heroku master pour télécharger mes fichiers sur Heroku.

Cependant, à un moment donné, j'ai créé une nouvelle branche appelée localement add-calendar-modelau cas où les prochaines étapes du développement de l'application iraient au sud ...

... c'est exactement ce qui s'est passé.

Cependant, malgré de nombreuses tentatives, je n'ai pas réussi à obtenir le code initial - c'est-à-dire le code d'avant la création de la nouvelle branche - de la masterbranche vers mon référentiel local.

J'ai donc décidé de supprimer manuellement tous les fichiers de mon référentiel local et git clonema masterbranche de GitHub.

De cette façon, j'ai récupéré tous mes fichiers, mais maintenant, je ne peux plus pousser vers le référentiel distant.

Chaque fois que j'essaye de courir git push origin add-calendar-modelou git push origin master, j'obtiens l'erreur suivante:

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.

Je ne suis pas très à l'aise avec Git et GitHub, comme vous l'avez peut-être deviné, et je dois admettre que je n'ai aucune idée de la façon de résoudre ce problème.

Une idée?


J'ai eu une erreur similaire, mais mon problème était que j'avais initialisé git dans le répertoire parent du dossier actuel que j'essayais. Juste au cas où quelqu'un est toujours en face, peut regarder où le git est initialisé et réessayer.
Himanshu Kriplani le

Réponses:


218

Tout d'abord, vérifiez que votre origine est définie en exécutant

git remote -v

Cela devrait vous montrer toutes les télécommandes push / fetch pour le projet.

Si cela revient sans sortie, passez au dernier bloc de code.

Vérifiez le nom / l'adresse à distance

Si cela revient à indiquer que vous avez défini des télécommandes, vérifiez que le nom de la télécommande correspond à la télécommande que vous utilisez dans vos commandes.

$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

Si vous souhaitez renommer la télécommande ou modifier l'URL de la télécommande, vous devez d'abord supprimer l'ancienne télécommande, puis ajouter la bonne.

Retirez l'ancienne télécommande

$git remote remove myOrigin

Ajouter une télécommande manquante

Vous pouvez ensuite ajouter la télécommande appropriée en utilisant

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

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

Cela a fonctionné pour moi sans le ssh://devantgit@example.com:1234/myRepo.git
Carol-Theodor Pelu

Je lisais cette question si vous pouviez également aider avec la nouvelle erreur de poussée du référentiel?
StaticVariable

12

Comme Matt Clark l'a déclaré ci-dessus

Cependant, l'origine peut ne pas être définie, donc ignorez l'étape de suppression et essayer simplement d'ajouter peut résoudre ce problème.

git remote add origin <"clone">

Où «cloner» va simplement dans votre dépôt GitHub et copie l'URL de clonage HTTPS et le colle dans GitBash


3

Assurez-vous que le fichier de configuration à .git est correct ... Vérifiez l'URL et assurez-vous que vous utilisez le bon protocole pour vos clés ... 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

Nous regardons l'URL ... par exemple: Pour bitbucket, attendez-vous à git@bitbucket.org .... Si c'est gitbucket.org. effectuez les modifications nécessaires. ENREGISTRER Essayez de pousser à nouveau.


2

Ça marche pour moi.

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

ajouter l'URL du référentiel à l'origine dans le répertoire de travail local


0

Une erreur similaire apparaît lors de l'extraction des modifications depuis l'origine. Si vous essayez Intellij à partir des options du menu, l'extraction peut ne pas fonctionner directement.

Allez dans le terminal et tapez cette commande et cela devrait fonctionner: git pull origin master


0

J'ai eu le même problème. Quand j'ai vérifié mon fichier de configuration, j'ai remarqué que 'fetch = + refs / heads / : refs / remotes / origin / ' était sur la même ligne que 'url = Z: /GIT/REPOS/SEL.git' comme indiqué:

[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

Au début, je ne pensais pas que cela aurait importé mais après avoir vu le message de Magere, j'ai déplacé la ligne et cela a résolu le problème:

[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

si vous ajoutez votre référentiel distant en utilisant git clone, suivez les étapes: -

git clone <repo_url> puis

git init

git add * * signifie ajouter tous les fichiers

git commit -m 'your commit'

git remote -vpour vérifier toute branche exécutée ou non sinon rien ne s'affiche, nous ajoutons ou récupérons le référentiel. " chercher en premier" . Vous devez exécuter git pull origin <branch> ou git pull -r origin <branch>avant une prochaine poussée .

puis

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

0

C'est ainsi que j'ai mis à jour la branche 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
Essayez d'ajouter des explications à votre réponse d'une manière qui répond à la question et tente d'aider un lecteur à comprendre. Actuellement, cela se lit comme une anecdote et ne fonctionnerait même pas dans le cas général (par exemple, https://github.com/la racine du site Web et un dépôt git)
Kache

-3

Parfois, vous n'avez pas de REF local pour repousser cette branche à l'origine.
Essayer

git push origin master:master

Cela indique explicitement vers quelle branche pousser (et depuis)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.