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.
Rien de mal.
Concentrez-vous là-dessus, cette branche est maîtresse.
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
.