Quand je cours:
git push origin branchname
Qu'est-ce que c'est exactement origin
et pourquoi dois-je le taper avant le nom de la branche?
Quand je cours:
git push origin branchname
Qu'est-ce que c'est exactement origin
et pourquoi dois-je le taper avant le nom de la branche?
Réponses:
origin
est un alias sur votre système pour un référentiel distant particulier. Ce n'est en fait pas une propriété de ce référentiel.
En faisant
git push origin branchname
vous dites de pousser vers le origin
référentiel. Il n'est pas nécessaire de nommer le référentiel distant origin
: en fait, le même référentiel peut avoir un alias différent pour un autre développeur.
Les télécommandes sont simplement un alias qui stocke l'URL des référentiels. Vous pouvez voir quelle URL appartient à chaque télécommande en utilisant
git remote -v
Dans la push
commande, vous pouvez utiliser des télécommandes ou vous pouvez simplement utiliser directement une URL . Un exemple qui utilise l'URL:
git push git@github.com:git/git.git master
git push
vous pouvez voir qu'il vérifie d'abord la configuration de ce référentiel (avec lequel vous pouvez vérifier git config --list
) pour une clé appelée branch.<branchname>.remote
. Si ce n'est pas défini, "il s'agit par défaut de l'origine" - git-scm.com/docs/git-push
origin
n'est pas le nom du référentiel distant. Il s'agit plutôt d'un alias local défini comme clé à la place de l'URL du référentiel distant.
Cela évite à l'utilisateur d'avoir à taper l'URL distante entière lors de l'invite.
Ce nom est défini par défaut et par convention par Git lors du premier clonage depuis une télécommande.
Ce nom d'alias n'est pas codé en dur et peut être modifié à l'aide de l'invite de commande suivante:
git remote rename origin mynewalias
Jetez un œil à http://git-scm.com/docs/git-remote pour plus de précisions.
Git a le concept de "télécommandes", qui sont simplement des URL vers d'autres copies de votre référentiel. Lorsque vous clonez un autre référentiel, Git crée automatiquement une télécommande nommée "origine" et pointe vers lui.
Vous pouvez voir plus d'informations sur la télécommande en tapant git remote show origin
.
git remote show origin
, pourquoi pas simplement git show origin
? Il doit y avoir une raison, quelle est-elle? Merci.
origin
est l' alias par défaut de l'URL de votre référentiel distant.
Facile! "origine" est exactement ce que vous avez surnommé votre référentiel distant lorsque vous avez exécuté une commande comme celle-ci:
git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git
À partir de là, Git sait que "origine" pointe vers ce référentiel spécifique (dans ce cas, un référentiel GitHub). Vous auriez pu l'appeler "github" ou "repo" ou tout ce que vous vouliez.
J'étais également confus par cela, et voici ce que j'ai appris.
Lorsque vous clonez un référentiel, par exemple à partir de GitHub:
origin
est l'alias de l'URL à partir de laquelle vous avez cloné le référentiel. Notez que vous pouvez modifier cet alias.
Il existe une master
branche dans le référentiel distant (aliasée par origin
). Il existe également une autre master
branche créée localement.
De plus amples informations peuvent être trouvées à partir de cette question SO: branchement Git: maître vs origine / maître vs télécommandes / origine / maître
Lorsque vous clonez un référentiel avec git clone
, il crée automatiquement une connexion distante appelée origin
pointant vers le référentiel cloné. Ceci est utile pour les développeurs qui créent une copie locale d'un référentiel central, car il fournit un moyen simple d'extraire des modifications en amont ou de publier des validations locales. Ce comportement est également la raison pour laquelle la plupart des projets basés sur Git appellent leur origine de référentiel central.
La meilleure réponse ici:
https://www.git-tower.com/learn/git/glossary/origin
Dans Git, "origine" est un nom abrégé pour le référentiel distant à partir duquel un projet a été initialement cloné. Plus précisément, il est utilisé à la place de l'URL de ce référentiel d'origine et facilite ainsi le référencement.
Sur https://www.git-tower.com/learn/git/glossary/origin :
Dans Git, "origine" est un nom abrégé pour le référentiel distant à partir duquel un projet a été initialement cloné. Plus précisément, il est utilisé à la place de l'URL de ce référentiel d'origine et facilite ainsi le référencement.
Notez que l'origine n'est en aucun cas un nom "magique", mais juste une convention standard. Bien qu'il soit logique de laisser cette convention intacte, vous pouvez parfaitement la renommer sans perdre aucune fonctionnalité.
Dans l'exemple suivant, le paramètre URL de la commande "clone" devient "l'origine" du référentiel local cloné:
git clone https://github.com/gittower/git-crash-course.git
Les autres réponses indiquent qu'il origin
s'agit d'un alias pour l' URL d'un référentiel distant qui n'est pas entièrement précis. Il convient de noter qu'une adresse qui commence par http
est une URL tandis que celle qui commence par git@
est un URI ou Universal Resource Identifier.
Toutes les URL sont des URI, mais pas toutes les URI sont des URL.
En bref, lorsque vous tapez, git remote add origin <URI>
vous dites à votre git local que chaque fois que vous utilisez le mot, origin
vous voulez réellement dire l'URI que vous avez spécifié. Considérez-le comme une variable détenant une valeur.
Et comme une variable, vous pouvez le nommer tout ce que vous voulez (par exemple. github
, heroku
, destination
, Etc.).
distant (alias d'URL du référentiel) → origine (alias en amont) → maître (alias de branche);
remote
, Le niveau même que working directory
, index
, repository
,
origin
, mappage de la branche de référentiel local à la branche de référentiel distant