fatal: 'origin' ne semble pas être un dépôt git

97

J'ai un référentiel moodlesur mon compte Github que jeforked du référentiel officiel.

Je l'ai ensuite cloné sur ma machine locale. Cela a bien fonctionné. J'ai créé plusieurs succursales (sous lemaster branche). J'ai fait plusieurs commits et cela a bien fonctionné.

Je ne sais pas comment j'obtiens l'erreur suivante lorsque je le fais: git push origin master

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

Comment résoudre l'erreur sans affecter mon référentiel sur Github?

j'utilise Ubuntu 12.10

Le contenu de mon .git/configaprès avoir fait cat $(git rev-parse --show-toplevel)/.git/configdonne:

[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
la source
Veuillez imprimer le contenu de .git / config et l'ajouter ici
pmod
@pmod: Veuillez consulter ma question mise à jour.
xan
Le dossier dans lequel vous avez cloné sur la machine locale doit contenir le dossier .git.
pmod
@xancat $(git rev-parse --show-toplevel)/.git/config
bereal
@pmod: Oui, je l'ai trouvé. Veuillez consulter ma question mise à jour.
xan

Réponses:

116

$HOME/.gitconfigest votre configuration globale pour git.
Il existe trois niveaux de fichiers de configuration .

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

( Mentionné par Bereal ) est votre locale config, local au repo que vous avez cloné.

vous pouvez également taper à partir de votre repo:

git remote -v

Et voyez si une télécommande nommée «origine» y est répertoriée.

Sinon, si cette télécommande (qui est créée par défaut lors du clonage d'un dépôt) est manquante, vous pouvez l'ajouter à nouveau:

git remote add origin url/to/your/fork

Le PO mentionne:

Faire git remote -vdonne:

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

Donc ' origin' manque: la référence à votre fourchette.
Voir " Quelle est la différence entre originet upstreamdans github "

entrez la description de l'image ici

VonC
la source
Faire git remote -vdonne: upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push)
xan
@xan 'upstream "est le dépôt que vous avez forké. Il vous manque origin, qui est votre fork sur github. Voir stackoverflow.com/a/15632224/6309 et stackoverflow.com/a/9257901/6309
VonC
Comment changer mon fork en master?
Wolfpack'08
@ Wolfpack'08 "fork" signifie un dépôt (avec plusieurs branches). Le passage à une branche est une opération locale qui implique le commutateur git: stackoverflow.com/a/57066202/6309 . Dans vos propres mots, que signifie pour vous «changer un fork en master»? Changer votre branche locale dans votre référentiel cloné local (de votre fork GitHub distant)?
VonC le
1
Si vous possédez le ghy repo à distance, appuyez simplement à elle: git push -u ghy master.
VonC le
22

J'ai rencontré le même problème lorsque j'ai renommé mon référentiel sur GitHub. J'ai essayé de pousser à quel point j'ai eu l'erreur

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

J'ai dû changer l'URL en utilisant

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

Après cela, toutes les commandes ont commencé à fonctionner correctement. Vous pouvez vérifier le changement en utilisant

git remote -v

Dans mon cas, après un changement réussi, il a montré un dépôt renommé correct dans l'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
la source
14

Il est possible que l'autre branche à partir de laquelle vous essayez de vous extraire ne soit pas synchronisée; donc avant d'ajouter et de supprimer la télécommande, essayez de (si vous essayez de tirer du maître)

git pull origin master

pour moi, ce simple appel a résolu ces messages d'erreur:

  • fatal: 'master' ne semble pas être un dépôt git
  • fatal: impossible de lire à partir du référentiel distant.
sivi
la source
3

Essayez d'abord de créer une origine distante, peut-être est-elle manquante car vous changez le nom du référentiel distant

git remote add origine URL_TO_YOUR_REPO

zdravko zdravkin
la source
2

Cela ne répond pas à votre question, mais j'ai rencontré un message d'erreur similaire, mais pour une raison différente. Permettez-moi de faire mon message dans un souci de collecte d'informations.

J'ai un dépôt git sur un lecteur réseau. Appelons ce disque réseau RAID. J'ai cloné ce repo sur ma machine locale (LOCAL) et sur mon cluster de numérisation (CRUNCHER). Pour plus de commodité, j'ai monté le répertoire des utilisateurs de mon compte sur CRUNCHER sur ma machine locale. Ainsi, je peux manipuler des fichiers sur CRUNCHER sans avoir besoin de faire le travail dans un terminal SSH.

Aujourd'hui, je modifiais des fichiers dans le repo sur CRUNCHER via ma machine locale. À un moment donné, j'ai décidé de valider les fichiers, donc a fait un commit. L'ajout des fichiers modifiés et le commit ont fonctionné comme prévu, mais quand j'ai appelégit push j'ai reçu un message d'erreur similaire à celui publié dans la question.

La raison était que j'ai appelé pushdepuis le repo sur CRUNCHER sur LOCAL. Ainsi, tous les chemins du fichier de configuration étaient tout simplement faux.

Quand j'ai réalisé ma faute, je me suis connecté à CRUNCHER via Terminal et j'ai pu pousser le commit.

N'hésitez pas à commenter si mon explication ne peut être comprise, ou si vous trouvez mon message superflu.

Dohn Joe
la source
1

J'ai eu la même erreur sur git pull origin branchname lors de la définition de l'origine distante comme chemin fs et non ssh dans .git / config :

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

C'était comme ça (cela ne fonctionne que pour les utilisateurs du même serveur de git qui ont accès à git):

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

Fixé comme tel (cela fonctionne sur tous les utilisateurs qui ont accès à git user (ssh authorizes_keys ou mot de passe)):

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

la raison pour laquelle je l'avais comme chemin de répertoire était parce que les fichiers git sont sur le même serveur.

Waqleh
la source
En effet! Le /domaine après doit être :si vous utilisez SSH. Vérifiez simplement avec git remote -v.
Noam Manos