664 votes

La source distante existe déjà lors de la commande 'git push' vers un nouveau dépôt

J'ai mon projet sur GitHub à une certaine adresse, git@github.com:myname/oldrep.git.

Maintenant je veux pousser tout mon code vers un nouveau dépôt à une autre adresse, git@github.com:newname/newrep.git.

J'ai utilisé la commande :

git remote add origin git@github.com:myname/oldrep.git

mais je reçois ceci :

fatal: remote origin already exists.

7 votes

Donnez la sortie de la commande $> git remote -v show

0 votes

1 votes

Une bonne méthode est d'utiliser "importer depuis un autre référentiel" en bas de votre nouveau référentiel créé, si vous connaissez l'URL de l'ancien.

1043voto

MrHus Points 10020

Vous obtenez cette erreur car "origin" n'est pas disponible. "origin" est une convention qui ne fait pas partie de la commande. "origin" est le nom local du dépôt distant.

Par exemple, vous pourriez également écrire:

git remote add myorigin git@github.com:myname/oldrep.git  
git remote add testtest git@github.com:myname/oldrep.git

Voir le manuel:

http://www.kernel.org/pub/software/scm/git/docs/git-remote.html

Pour supprimer un dépôt distant, vous saisissez:

git remote rm origin

Encore une fois, "origin" est le nom du dépôt distant si vous voulez supprimer le dépôt distant "upstream":

git remote rm upstream

13 votes

"git remote rm origin" n'a pas fonctionné pour moi, si cela ne fonctionne pas pour vous, essayez de vérifier avec "git remote -v" cela vous montrera si votre origin a une URL définie, si ce n'est pas le cas, il est probable que vous ayez fait l'initialisation localement et que vous essayiez de le pousser en distant, et avez commis une erreur comme moi). Ensuite, suivez la réponse de RobinH : git remote set-url origin git@github.com:username/projectname.git

1 votes

Vérifiez cette réponse pour forcer l'URL.

1 votes

"git remote rm origin" a bien fonctionné, merveilleux! :) puhh, je suis nouveau dans la terminologie de git donc c'était une plus grande recherche, mais votre réponse m'a beaucoup aidé. :) merci!

296voto

RobinH Points 1198

Les solutions précédentes semblent ignorer l'origine, et elles suggèrent seulement d'utiliser un autre nom. Si vous voulez simplement utiliser git push origin, continuez à lire.

Le problème apparaît parce qu'un mauvais ordre de configuration Git est suivi. Vous avez peut-être déjà ajouté un 'git origin' à votre configuration .git.

Vous pouvez changer l'origine distante dans votre configuration Git avec la ligne suivante :

git remote set-url origin git@github.com:nomutilisateur/nomduprojet.git

Cette commande définira une nouvelle URL pour le dépôt Git sur lequel vous voulez faire push. Il est important de remplir avec votre propre nom d'utilisateur et nom du projet.

7 votes

Merci, exactement ce que je devais faire :)

1 votes

Cela a résolu le problème pour moi. Mais ce qui m'a vraiment aidé avec ce problème, c'est parce que j'utilise portableGit qui a été installé avec Gihub pour Windows. J'ai trouvé la solution ici

1 votes

Super! J'avais besoin de changer mon dépôt gitorious en dépôt git lab et cette solution était parfaite! Merci!

99voto

Comptrol Points 4415

Si vous avez accidentellement nommé le nom local "origin", vous pouvez le supprimer avec la commande suivante :

git remote rm origin

1 votes

Que signifie réellement "nommé par erreur le nom local comme 'origin'"? Pouvez-vous l'expliquer en détail? @Ozgur

1 votes

Cela pourrait signifier que vous avez ajouté l'origine distante qui ne pointe pas vers un dépôt git. Par conséquent, si vous envisagez de pousser toutes vos modifications vers le maître, le git se plaindra en disant que l'origine distante n'est pas un dépôt git.

17voto

Jakub Narębski Points 87537

Vous pouvez simplement modifier votre fichier de configuration dans un éditeur de texte.

Dans le ~/.gitconfig, vous devez insérer quelque chose comme ce qui suit :

[user]
        name  = Uzumaki Naruto
        email = myname@example.com

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

Dans le fichier oldrep/.git/config (dans le fichier de configuration de votre dépôt) :

[remote "github"]
        url = git@github.com:myname/oldrep.git
        push  = +refs/heads/*:refs/heads/*
        push  = +refs/tags/*:refs/tags/*

S'il y a une section à distance dans le fichier de configuration de votre dépôt et que l'URL correspond, vous n'avez qu'à ajouter une configuration de poussée. Si vous utilisez une URL publique pour la récupération, vous pouvez mettre l'URL de poussée sous 'pushurl' (attention : cela nécessite la dernière version de Git 1.6.4).

8voto

mpelzsherman Points 194

Vous n'avez pas besoin de supprimer votre "origin" à distance existant, il suffit d'utiliser un nom différent que "origin" pour votre ajout à distance, par exemple

git remote add github git@github.com:monnom/vieilrepo.git

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X