Lorsque git fetch récupère les branches de suivi à distance, générera-t-il une copie ?
巴扎黑
巴扎黑 2017-06-22 11:52:57
0
1
916

Cette question se pose lors de l'apprentissage de la "branche distante" de Pro git.

Question :
Git fetch générera-t-il une copie locale lors de la récupération d'une branche de suivi à distance ?

Lisez d'abord l'explication originale,

Si vous souhaitez synchroniser votre travail, exécutez la commande git fetch origin. Cette commande recherche l'origine du serveur (dans ce cas, il s'agit de git.ourcompany.com), en récupère les données qui ne sont pas disponibles localement et met à jour la base de données locale, en déplaçant le pointeur origin/master pour pointer vers le nouveau serveur. , emplacement mis à jour.

D'après l'image, comme la branche principale est locale, après avoir cloné l'entrepôt distant (point de soumission f4265), deux soumissions locales ont été effectuées, générant une nouvelle chaîne de soumission. En même temps, quelqu'un d'autre sur le serveur a poussé la branche master (31b8e, 190a3) validée sur le serveur. Par conséquent, lors de l'utilisation de git fetch origin, je comprends que :
La branche master locale ne sera pas affectée, à partir du point de fork. c'est-à-dire à partir de origin/master avant la récupération, une nouvelle branche est générée localement. Cette branche génère une copie localement, et en même temps, le pointeur origin/master pointe vers la fin de la copie locale.

Mais après avoir lu ci-dessous, ce paragraphe est revenu :

Une chose à laquelle il faut prêter une attention particulière est que lorsqu'une nouvelle branche de suivi à distance est capturée, une copie modifiable (copie) ne sera pas automatiquement générée localement. En d'autres termes, dans ce cas, il n'y aura pas de nouvelle branche serverfix - juste un pointeur origin/serverfix non modifiable.

Je ne comprends pas. Ma compréhension précédente est-elle fausse ? Donc l’illustration de la figure 32 est également fausse ? Les deux points de commit (31b8e, 190a3) ne seront pas du tout obtenus localement, mais seul un nouveau pointeur origine/maître sera obtenu dans la base de données ? Le texte original principal dit « saisir les données qui ne sont pas disponibles localement et mettre à jour la base de données locale » est très vague et ne précise pas quelles sont les données.

巴扎黑
巴扎黑

répondre à tous(1)
给我你的怀抱

Rien de mal.

Récupérez les données qui ne sont pas disponibles localement et mettez à jour la base de données locale, en déplaçant le pointeur origine/maître vers le nouvel emplacement mis à jour.

Concentrez-vous là-dessus, cette branche est maîtresse.

Lorsqu'une nouvelle branche de suivi à distance est récupérée, la branche locale ne générera pas automatiquement une copie modifiable (copie). En d'autres termes, dans ce cas, il n'y aura pas de nouvelle branche serverfix - juste un pointeur origin/serverfix non modifiable.

Vous devez donc utiliser git checkout -b serverfix origin/serverfix pour créer une copie locale modifiable .

Seule la branche master créera une copie locale éditable . Les autres branches sont toutes en origin/* 下面,需要手动的 git checkout -b.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal