2011-07-08 3 views
1

je fais généralement la commande git pull pour aller chercher + fusionner avec mon repositor locale de prise en pension à distancedépôt GIT commande de traction

  1. Est-ce que git fetch pull + se confond toutes les branches de repo github ou juste faire l'opération spécifique pour la branche sur laquelle les références ont été définies. ?? Supposons que je n'ai pas défini les références pour une branche particulière et que j'appelle git pull that, que fait-il? J'ai essayé de l'observer plusieurs fois, mais je n'ai pas une compréhension complète à ce sujet.

  2. J'ai apporté beaucoup de modifications à un fichier particulier, maintenant si je tire sur cette branche. Est-ce que mes changements vont disparaître et fusionner avec le fichier tiré. ??

Répondre

1
  1. git pull sans paramètres ne fonctionnera que si la branche que vous actuellement extrait est configuré pour tirer parameterless, à savoir qu'il est une branche de suivi. Vous pouvez voir les branches configurées pour parameterless traction et de poussée à l'aide git remote show remotename

  2. dans ce cas, il fait imprimer un texte disant que vous n'avez pas spécifié la branche avec laquelle vous vous attendez git à travailler

  3. Si vos changements sont engagés et ne sont pas en conflit avec ce que vous avez retiré de la télécommande - ils seront fusionnés ensemble. Ils ne partiront pas. OTOH si vous savez ou pensez que la branche distante peut avoir des changements que votre branche locale n'a pas je recommanderais d'utiliser git pull --rebase. Si vos modifications ne sont pas validées, l'opération sera annulée et vous devrez les valider ou les stocker

+0

Bonne info sur le git pull --rebase, qu'en est-il de la commande --track. Pouvez-vous partager vos opinions à ce sujet aussi. J'avais l'habitude de penser que seulement quand vous spécifiez dans le fichier .git/config. Quelle est cette option --track –

+0

--track est l'une des façons de configurer une branche pour un tirage sans paramètre. Il est surtout utilisé lorsque vous créez une branche en utilisant les commandes git branch ou git checkout: git branch --track dev1_featureX dev1/featureX –

1
  1. Git ne cherche qu'à merge la branche à laquelle vous exécutez la commande pull. Les autres branches sont récupérées uniquement.
  2. Git fetch reçoit les dernières informations pour toutes les branches.
  3. Git vous informera que votre arbre de travail n'est pas propre et vous demande soit stash les changements ou commit eux.
+0

Etes-vous sûr de tirer sur une branche principale et toutes les autres branches sous-jacentes seront récupérées mais pas fusionnées? ? –

+0

Assez sûr. Essaye le. Une fusion ne peut se produire que sur l'arbre de travail et non sur les objets commit. – JJD