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. P>
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? p>
3 Réponses :
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 de sorte que votre branche locale "suivre" la branche distante et défaut de pousser et de tirer de cette branche. P> p> git clone code> de certains référencements à distance, vous pouvez git checkout RemoName / branche code> 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
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) 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). P>
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). P>
donc simple " Si vous utilisez " Vous pouvez également forcer votre branche locale à Enfin, si vous voulez htth p> distant / tête code> 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). P>
d 'origine git checkout d'origine code>" (en supposant que la télécommande est appelée origine code>), qui est raccourci pour " Checkout GIT Origine / Head Code> ", qui est généralement" d 'origine git checkout / maître code> "serait à la caisse d'un état de la branche de suivi à distance fort> 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. P>
decket git --Track Origine / maître code>" créerait une branche locale maître code>, qui est destiné à Suivre (piste) Suivi Branche forte> Origine / Master Code>. Notez que Git-Clone définit automatiquement une telle branche locale (généralement maître code>) pour la branche par défaut ( origine / tête têtes>) de la télécommande origine code> (généralement Origine / Master Code>), vous n'auriez donc pas à faire cela. Ensuite, simple " git tire code>" lorsque sur la branche maître code> 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 code>" ici à partir de très, équivalent très difficile de " SVN Mise à jour code>". P>
git reset --hard origine code>". Notez que - dur code> signifie ici pour forcer écraser le répertoire de travail, donc tout changement décisté serait perdu! Utiliser avec soin. P>
ORIGINE DE CHEVOIR GIT - Fichier CODE>". 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 code>". P>
Parfois, vous risquez de souffrir de Liste de toutes les branches, vous verrez: P> tête détachée code> Problèmes: HEAD_BRANCH="$(git branch -r | grep 'HEAD')"
HEAD_BRANCH="${HEAD_BRANCH#*origin/HEAD -> *origin/}"
git checkout "$HEAD_BRANCH"