git - origine ajouter à distance vs origine set-url


413

Je crée un nouveau référentiel:

git init
echo "# MESSAGE" >> README.md
git add README.md
git commit -m "first commit"

Ensuite, je veux pousser ma validation dans le référentiel distant vide créé sur github, je dois donc définir remote.

Quelle est la différence entre l'utilisation des commandes suivantes? :

git remote add origin git@github.com:User/UserRepo.git
git remote set-url origin git@github.com:User/UserRepo.git

A la fin j'exécute push:

git push -u origin master

Edit1:

Que se passe-t-il lorsque j'appelle origine set-url juste après git init? L'origine de l'URL de l'ensemble distant crée-t-elle l'origine? Si l'origine existe déjà après git init, il n'y a aucune différence entre l'utilisation de ces commandes dans mon scénario, non?

Réponses:


509

ci-dessous est utilisé pour ajouter une nouvelle télécommande:

git remote add origin git@github.com:User/UserRepo.git

ci-dessous est utilisé pour modifier l'URL d'un référentiel distant existant:

git remote set-url origin git@github.com:User/UserRepo.git

ci-dessous poussera votre code vers la branche principale du référentiel distant défini avec originet -uvous permettra de pointer votre branche locale actuelle vers la branche principale distante:

git push -u origin master

Documentation


si je clone de A vers mon local puis utilise "git remote set-url B". va-t-il supprimer le référentiel en A? J'essaie de cloner un référentiel du code AWS commit vers GitLab
Josh

Habituellement, lorsque je bifurque un nouveau dépôt, je fais une erreur et je mets l'origine à l'amont. Finissez par avoir besoin de le corriger en utilisant la 2ème commandegit remote set-url origin git@github.com:User/UserRepo.git
Honey

-u laissez-vous pointer votre branche locale actuelle vers la branche principale distante. Je ne comprends pas pourquoi je voudrais le faire. Je veux dire, disons que j'ai retiré du maître, créé un nouveau FeatureBranch ... j'ai validé mes modifications, puis j'ai poussé mes modifications vers origin / featureBranch, puis j'ai fusionné / tiré cette fonctionnalité dans mon maître. <- en ce moment, je n'ai pas fini avec mon FeatureBranch? Pourquoi en aurais-je besoin pour pointer vers une branche maître distante? Ne devrais-je pas passer à la commande locale / maître, puis extraire de la dernière origine?
Honey

La réponse est très bonne, sauf l'explication du -udrapeau, qui est, à mon avis, trompeuse. Pour l'explication du -udrapeau, je recommanderais de jeter un œil à ce thread stackoverflow.com/questions/18867824/…
hoang tran

et -u vous permet de pointer votre branche locale actuelle vers la branche maître distante: je ne comprends pas cette ligne ... Que vouliez-vous dire?
pleut le

62
  • Lorsque vous exécutez git remote add origin git@github.com:User/UserRepo.git, puis une nouvelle télécommande créée nommée origin.
  • Lorsque vous exécutez git remote set-url origin git@github.com:User/UserRepo.git, git recherche le nom de la télécommande existante originet changez son URL de référentiel distant. Si git est incapable de trouver une télécommande ayant un nom origin, cela déclenche une erreur fatal: No such remote 'origin'.

Si vous allez créer un nouveau référentiel, utilisez git remote add origin git@github.com:User/UserRepo.gitpour ajouter une télécommande.


Veuillez voir Edit1
Irbis

git initn'ajoute aucune origine. Seul le référentiel git sera initialisé. Si vous clonez un référentiel existant, il a une origine distante. La recommandation est l'utilisation git add, après git initnon set-url.
Ram

@Ram Il est évident de ne pas appeler set-url après git init car cela n'a pas de sens. set-url doit changer et ajouter est d'ajouter une nouvelle télécommande.
Santosh

61

Ci-dessous, vous réinitialiserez votre dépôt local; effacer également les dépôts distants (c'est-à-dire l'origine):

git init

Ensuite, ci-dessous, créera «origine» s'il n'existe pas:

git remote add origin [repo-url]

Sinon, vous pouvez utiliser la set-urlsous - commande pour modifier une télécommande existante:

git remote set-url origin [repo-url]

Vous pouvez également vérifier les télécommandes existantes avec

git remote -v

J'espère que cela t'aides!


1
git remote set-url origin ...sur une mise en pension nouvellement initiée m'a fait le message fatal: Aucune «origine» à distance. git remote add origin ...travaillé.
Robb Vandaveer

@RobbVandaveer Merci pour la capture! J'ai mis à jour la réponse pour l'utilisation correcte de la sousset-url
vpibano

32

git remote add=> AJOUTE une nouvelle télécommande.

git remote set-url=> MISE À JOUR de la télécommande existante.


  1. Le nom distant qui vient après addest un nouveau nom distant qui n'existait pas avant cette commande.
  2. Le nom distant qui vient après set-urldoit déjà exister en tant que nom distant dans votre référentiel.

git remote add myupstream someurl => le nom distant myupstream n'existait pas maintenant en le créant avec cette commande.

git remote set-url upstream someurl => le nom distant en amont existe déjà je change juste son url.


git remote add myupstream https://github.com/nodejs/node => **ADD** If you don't already have upstream
git remote set-url upstream https://github.com/nodejs/node # => **UPDATE** url for upstream

30

Pour ajouter une nouvelle télécommande, utilisez la git remote addcommande sur le terminal, dans le répertoire où votre référentiel est stocké.

La git remote set-urlcommande modifie une URL de référentiel distant existante.

Donc, fondamentalement, remote add est d'ajouter un nouveau, remote set-urlest de mettre à jour un existant


28

1. git remote add origin git@github.com:User/UserRepo.git

  • Cette commande est la deuxième étape de la série de commandes après avoir initialisé git dans votre référentiel de travail actuel à l'aide de git init .
  • Cette commande signifie simplement "vous ajoutez l'emplacement de votre référentiel distant où vous souhaitez pousser / tirer vos fichiers vers / depuis !! .."
  • Votre référentiel distant peut être n'importe où sur github, gitlab, bitbucket, etc.
  • Voici originun alias / nom alternatif pour votre référentiel distant afin que vous n'ayez pas à taper le chemin complet de remote à chaque fois et que vous déclarez désormais que vous utiliserez ce nom (origine) pour faire référence à votre télécommande. Ce nom pourrait être n'importe quoi.
  • Pour vérifier que la télécommande est correctement configurée, tapez: git remote -v

    OU git remote get-url origin

2. git remote set-url origin git@github.com:User/UserRepo.git

Cette commande signifie que s'il vous arrive par inadvertance de pousser vers un mauvais référentiel la première fois, vous pouvez "réinitialiser votre chemin de référentiel distant" en utilisant la commande ci-dessus.

3. git push -u remote master

Cette commande pousse simplement vos fichiers vers le référentiel distant. Git a un concept de quelque chose connu comme une "branche" , donc par défaut tout est poussé vers le maître branche , sauf indication explicite d'une autre branche.

Pour connaître la liste de toutes les branches que vous avez dans votre type de référentiel:git branch


10

Essaye ça:

git init  
git remote add origin your_repo.git  
git remote -v  
git status  

7

Vous ne pouvez pas appeler remote set-url originjuste aprèsgit init , car la git remote set-urlcommande ne créera pas d'origine, mais elle modifie une URL de référentiel distant existante .

la commande git remote set-urlne fonctionnera donc que si vous avez cloné le référentiel ou ajouté manuellement une télécommande appelée origine.

vous pouvez vérifier à distance avec la commande, git remote -vil affichera l'URL à distance après le nom, ou si cette commande donne une erreur comme fatal: Not a git repository (or any of the parent directories): .gitalors le référentiel n'existe pas, vous devez donc ajouter l'origine avec la commandegit remote add

1. git remote add

Cette commande permet d'ajouter une nouvelle télécommande, vous pouvez utiliser cette commande sur le terminal, dans le répertoire de votre référentiel.

La commande git remote add prend deux arguments:

  1. Un nom distant , par exemple, origine
  2. Une URL distante , par exemple, https://github.com/user/repo.git

Par exemple:

git remote add origin https://github.com/user/repo.git

2.git remote set-url

La commande git remote set-url modifie une URL de référentiel distant existante.

La commande git remote set-url prend deux arguments:

  1. Un nom distant existant . Par exemple, originou upstreamsont deux choix courants.
  2. Une nouvelle URL pour la télécommande

Par exemple, vous pouvez changer l'URL de votre télécommande de SSH en HTTPS avec la git remote set-urlcommande.

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

vous pouvez vérifier que l'URL distante a changé, avec la commande git remote -v.

note: "origine" est une convention qui ne fait pas partie de la commande. "origine" est le nom local du référentiel distant. vous pouvez utiliser n'importe quel nom au lieu de "origine".

Par exemple:

git remote add myorigin git@github.com:user/repo.git
git remote set-url myorigin https://github.com/user/repo.git

Références de github: add distance , set-url à distance


0

si vous avez un projet existant et que vous souhaitez ajouter l'URL du référentiel distant, vous devez faire la commande suivante

git init

si vous souhaitez ajouter un fichier readme.md, vous pouvez le créer et l'ajouter à l'aide de la commande ci-dessous.

git add README.md

faites votre premier commit en utilisant la commande ci-dessous

git commit -m "first commit"

Maintenant que vous avez terminé tout le processus de référentiel local, comment ajouter une URL de référentiel distant? vérifiez ci-dessous la commande c'est pour l'URL ssh, vous pouvez le changer pour https.

git remote add origin git@github.com:user-name/repository-name.git

Comment vous poussez votre premier commit voir la commande ci-dessous :

git push -u origin master
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.