9
votes

Comment puis-je découvrir la version de la tête de ma branche de la télécommande / suivi

Dans GIT, comment puis-je consulter la version de la tête de ma Direction de la télécommande / de suivi? Fondamentalement, je veux faire une «caisse SVN» dans GIT.

Je pense que la chose la plus proche que je trouve est 'git fetch', mais de la page man, je ne sais pas comment vérifier 1 fichier particulier en utilisant cela?

git

0 commentaires

3 Réponses :


4
votes

Git n'a pas de notion de récupération d'un seul fichier. Il bouge toujours commet à travers le réseau.

Une fois que vous avez effectué un git clone de certains référencements à distance, vous pouvez git checkout RemoName / branche pour avoir le dernier fichier Les versions sur cette branche vérifiées dans votre copie de travail. Si vous souhaitez les modifier, vous devriez Git Checkout -B RemoName / Branche Pour démarrer une branche locale. Cela pourrait être mieux fait comme xxx

de sorte que votre branche locale "suivre" la branche distante et défaut de pousser et de tirer de cette branche.


0 commentaires

17
votes

Premier, une note: le référentiel à distance peut avoir plus d'une branche; Aussi des moyens de tête (pour le développement local et les branches locales) actuellement décédée de la branche de sortie et pour la télécommande de la branche de suivi à distance (référence symbolique) distant / tête signifie une branche par défaut sur la télécommande. Il n'y a pas une telle chose comme «chef de branche»; La tête est un pointeur à la branche (ou parfois à un commit).

second, git fonctionne (comme Novelocrat a écrit ) sur le niveau d'arbre entier (tous les fichiers dans le référentiel). En git, vous cédez une succursale (bien que vous puissiez vérifier une version de fichier de certaines succursales au répertoire de travail. Il s'agit d'une opération de commkon).


En GIT, vous pouvez créer un nouveau commit uniquement sur certaines branches locales. Vous ne pouvez pas créer de commettre directement sur les branches de suivi à distance, car ils sont censés suivre des branches du référentiel à distance (et vous perdriez votre travail sur la récupération).

donc simple " d 'origine git checkout d'origine " (en supposant que la télécommande est appelée origine ), qui est raccourci pour " Checkout GIT Origine / Head ", qui est généralement" d 'origine git checkout / maître "serait à la caisse d'un état de la branche de suivi à distance dans une branche sans nom, ainsi appelée tête détachée. C'est une bonne solution si vous ne voulez que voir / parcourir l'état de la branche de suivi à distance.

Si vous utilisez " decket git --Track Origine / maître " créerait une branche locale maître , qui est destiné à Suivre (piste) Suivi Branche Origine / Master . Notez que Git-Clone définit automatiquement une telle branche locale (généralement maître ) pour la branche par défaut ( origine / tête ) de la télécommande origine (généralement Origine / Master ), vous n'auriez donc pas à faire cela. Ensuite, simple " git tire " lorsque sur la branche maître va chercher (si nécessaire) et essayer de fusionner vos modifications locales avec les modifications de la branche respective du référentiel à distance. S'il n'y avait pas de changements dans la télécommande, il est «à jour» et que votre branche locale ne changerait pas; S'il n'y avait pas de changements dans votre branche locale mais que vous étiez dans la télécommande, la succursale locale est simplement avancée à l'état de la branche de suivi à distance, appelée «rapide». Vous pouvez penser à " git tirer " ici à partir de très, équivalent très difficile de " SVN Mise à jour ".

Vous pouvez également forcer votre branche locale à rembobiner à l'état de la branche de suivi à distance avec " git reset --hard origine ". Notez que - dur signifie ici pour forcer écraser le répertoire de travail, donc tout changement décisté serait perdu! Utiliser avec soin.

Enfin, si vous voulez Consultez un fichier unique à partir de la branche de suivi à distance (c'est-à-dire à avoir dans la version de répertoire de travail du fichier tel qu'il est dans une branche de suivi à distance), vous pouvez simplement utiliser le ' PATHSPEC 'FORMULAIRE DE GIT-CHECKOUT, nommément " ORIGINE DE CHEVOIR GIT - Fichier ". Si vous souhaitez seulement voir la manière dont le fichier ressemble à une branche de suivi à distance, utilisez " git spectacle d'origine: chemin / vers / fichier ".

htth


0 commentaires

0
votes

Parfois, vous risquez de souffrir de tête détachée code> Problèmes: xxx pré>

Liste de toutes les branches, vous verrez: P>

HEAD_BRANCH="$(git branch -r | grep 'HEAD')"
HEAD_BRANCH="${HEAD_BRANCH#*origin/HEAD -> *origin/}"
git checkout "$HEAD_BRANCH"


0 commentaires