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 [email protected]:User/UserRepo.git
git remote set-url origin [email protected]: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?

Irbis
la source

Réponses:

509

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

git remote add origin [email protected]:User/UserRepo.git

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

git remote set-url origin [email protected]: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

Shubham Khatri
la source
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 [email protected]: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 [email protected]:User/UserRepo.git, puis une nouvelle télécommande créée nommée origin.
  • Lorsque vous exécutez git remote set-url origin [email protected]: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 [email protected]:User/UserRepo.gitpour ajouter une télécommande.

RAM
la source
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!

vpibano
la source
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
Tomer Ben David
la source
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

Murf
la source
28

1. git remote add origin [email protected]: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 [email protected]: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

Tahir77667
la source
10

Essaye ça:

git init  
git remote add origin your_repo.git  
git remote -v  
git status  
Tal Hakmon
la source
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 [email protected]:user/repo.git
git remote set-url myorigin https://github.com/user/repo.git

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

Haritsinh Gohil
la source
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 [email protected]:user-name/repository-name.git

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

git push -u origin master
Sumit Jaiswal
la source