2013-02-19 6 views
0

J'ai remarqué que, pour une raison quelconque, certaines de mes branches git sont préfixés avec "remotes/origine":télécommandes github/origine préfixes

BZ9 
* master 
remotes/origin/BZ8 
remotes/origin/BZ9 
remotes/origin/HEAD -> origin/master 
remotes/origin/junit1 
remotes/origin/master 

Quelle est la différence entre, par exemple, les « remotes/origine/BZ9 "branche et la branche BZ9? Clairement, ils proviennent tous deux de la même branche conceptuelle, mais git les considère comme distincts.

Répondre

0

Dans votre liste, "BZ9" et "master" sont les deux branches locales que vous pouvez déplacer et mettre à jour librement. Lorsque vous êtes sur l'une de ces branches et que vous effectuez une validation, la branche se met à jour pour indiquer votre dernière validation. Cependant, les noms préfixés d'origine/distants apparaissant lorsque vous tapez git branch -a ressemblent à des branches, mais vous pouvez les considérer comme "en lecture seule". Ces branches que vous ne contrôlez pas directement, elles sont automatiquement définies lorsque vous les récupérez, et elles ne changeront pas tant que vous n'aurez pas récupéré (ou tiré). En effet, contrairement aux branches locales qui suivent votre développement local, les branches distantes/origine suivent le développement à distance sur le serveur d'origine ("origine"). Par exemple, le "remotes/origin/junit1" dit: "la dernière fois que git a été récupéré du repo origine, il y avait une branche appelée junit1 qui pointait vers ce hash de commit".

Vous pouvez extraire cette branche distante comme n'importe quelle autre, mais lorsque vous validez cette branche, le pointeur de branche ne se met pas à jour car il n'est pas destiné à suivre votre progression locale.

Votre progression locale est suivie par vos agences locales, que vous créez, mettez à jour, supprimez librement si nécessaire. De même, si quelqu'un d'autre clone à partir de votre repo, alors quand il ira chercher chez vous, il aura deux branches distantes: "remotes/origin/BZ9" et "remotes/origin/master". En d'autres termes, vos succursales locales deviennent des succursales distantes/d'origine pour quelqu'un en aval de vous.

Ainsi, toutes vos branches distantes/d'origine sont également des copies en lecture seule des branches locales de votre repo amont.

Questions connexes