Dans Git, Quelle est la différence entre origin / master et origin master?

Je sais, origine est un terme pour le dépôt distant et maître - est la branche.

J'Omets délibérément le" contexte " ici et j'espère que la réponse ne devrait pas dépendre du contexte. Ainsi, dans git lignes de commande, quelle est la différence entre origin/master et origine de maître. Est-il un non-ambiguë façon de comprendre quand utiliser origin/master et quand je dois utiliser les origine de maître?

158
git
demandé sur Senthil Kumaran 2013-08-09 02:20:59

5 réponses

Il y a en fait trois choses ici: origin master est deux choses séparées, et origin/master est une chose. Trois choses au total.

Deux branches:

  • master est une branche locale
  • origin/master est une branche distante (qui est un copie locale de la branche nommée "maître" sur la télécommande nommé "origine")

Une télécommande:

  • origin est une télécommande

Exemple: tirez en deux étapes

Puisque origin/master est une branche, vous pouvez la fusionner. Voici une traction en deux étapes:

Première étape, récupérez master depuis la télécommande origin. La branche master sur {[9] } sera récupérée et la copie locale sera nommée origin/master.

git fetch origin master

Ensuite, vous fusionnez origin/master dans master.

git merge origin/master

Ensuite, vous pouvez pousser vos nouvelles modifications dans master vers origin:

git push origin master

Plus d'exemples

Vous pouvez récupérer plusieurs branches par nom...

git fetch origin master stable oldstable

, Vous pouvez fusionner plusieurs branches...

git merge origin/master hotfix-2275 hotfix-2276 hotfix-2290
236
répondu Dietrich Epp 2013-08-08 22:46:35

origin/master est la branche locale représentant l'état de la master branche sur la télé - origin.

origin master est la branche master sur la télécommande origin.

Exemple (dans la branche localemaster):

git fetch # get current state of remote repository
git merge origin/master # merge state of remote master branch into local branch
git push origin master # push local branch master to remote branch master
11
répondu Femaref 2013-08-08 22:22:17

origin/master est la branche distante master

Habituellement, après avoir fait un git fetch origin pour apporter toutes les modifications du serveur, vous feriez un git rebase origin/master, pour rebaser vos modifications et déplacer la branche vers le dernier index. Ici, origin/master fait référence à la branche distante, car vous dites essentiellement à GIT de rebaser la branche origin/master sur la branche actuelle.

Vous utiliseriez origin master lors de la poussée, par exemple. {[7] } dit simplement à GIT de pousser vers le référentiel distant la branche locale master.

3
répondu Raul Rene 2013-08-08 22:27:19

Origin est un nom pour l'url git distante. Il peut y avoir beaucoup plus de télécommandes exemple ci-dessous.

bangalore => bangalore.example.com:project.git

boston => boston.example.com:project.git

En ce qui concerne origin / master (exemple bangalore/master), il s'agit d'un pointeur vers" master " commit sur bangalore site . Vous le voyez dans votre clone.

Il est possible que Bangalore distant ait avancé puisque vous avez fait "fetch"ou" pull "

2
répondu forvaidya 2013-08-09 02:35:53

Étant donné que vous pouvez passer à origin/master (Bien que dans un état détaché) tout en débranchant votre câble réseau, il doit s'agir d'une représentation locale de la branche master à origin.

2
répondu Martin 2017-10-17 10:54:19