Je souhaite télécharger le code source de la branche master-next en utilisant git comme décrit dans le wiki Xilinx .

Jai essayé ceci:

#git clone git://github.com/Xilinx/u-boot-xlnx/tree/master-next.git Initialized empty Git repository in /home/Hannan/master-next/.git/ fatal: remote error: Xilinx/u-boot-xlnx/tree/master-next is not a valid repository name Email [email protected] for help 

Même cela a échoué:

# git clone git://github.com/Xilinx/tree/master-next/u-boot-xlnx.git Initialized empty Git repository in /home/Hannan/u-boot-xlnx/.git/ fatal: remote error: Xilinx/tree/master-next/u-boot-xlnx is not a valid repository name Email [email protected] for help 

La commande qui fonctionne est:

 git clone git://github.com/Xilinx/u-boot-xlnx.git 

Mais comment savoir que cela va effectivement récupérer la branche master-next et non la branche principale ? Comment récupérer correctement une branche spécifique en utilisant git?

Jutilise RHEL 6, accessible via PuTTY.

Réponse

Comme le message derreur vous lindique, git clone attend un dépôt git. Vous pouvez « t » ajouter « le nom dune branche dans le chemin comme ça. Voir branches dans git .

Vous pouvez cloner un branche unique (et son histoire): git clone <url> --branch <branch> --single-branch

Voir git help clone.

Mais la commande clone que vous avez exécutée vous a donné une copie de tout le référentiel, vous pouvez voir les branches existantes avec git branch et plus de détails à leur sujet avec git show-branch.

Basculez vers la branche souhaitée avec git checkout branch-name.

Les premiers chapitres du Pro Git (disponible en ligne) donne plus de détails sur les commandes de base.

Commentaires

  • " La commande clone que vous avez exécutée vous a donné une copie de tout le référentiel " .whole repository signifie que les deux branches ont fusionné?
  • Non, elles sont pas fusionné. Une branche dans git nest pas une copie de tout le répertoire, comme expliqué ici .
  • Voici ce que jai fait: " git clone -b master-next github.com/Xilinx/u-boot-xlnx.git " nest-ce pas correct?
  • Vous navez plus ' besoin dêtre cloné. La commande que vous avez montrée dans votre question vous a donné le référentiel avec toutes les branches. Mais cela est également correct. Cela ' équivaut à git checkout master-next après le clonage.

Réponse

Cette commande devrait fonctionner:

$ git fetch origin [branch] 

La commande ci-dessus ne récupère que les métadonnées du référentiel distant, ce nest pas le cas merge sources.

Si vous voulez récupérer et fusionner les sources, la commande serait:

$ git pull origin [branch] 

Faites attention à la branche où vous exécutez la commande de fusion. Ce sera là que les sources seront fusionnées.

Commentaires

  • Votre réponse est techniquement correcte mais je pense quelle pourrait bénéficier dune vérification grammaticale / re écriture.
  • cela fonctionne bien merci

Answer

Les dépôts git contiennent toutes les branches ( mais compressé et seulement des différences donc rarement un problème de taille).

Par conséquent, vous pouvez cloner le projet entier comme vous lavez fait avec succès. Cest une manière standard dobtenir un référentiel, même si vous nêtes intéressé que par une seule branche.

La structure .git inclura alors toutes les branches effectuées sur ce référentiel.

Pour utiliser une branche spécifique, faites git checkout [branch_name] Si la branche existe, les fichiers seront rendus disponibles localement (comme juste cela, les fichiers actuels dans les répertoires du projet).

git status montrera alors quelle branche est la branche courante, par exemple:

Selon Leiaz, on peut cloner une branche spécifique. En pratique, je « nai jamais fait cela ou vu dautres lutiliser. Sur des recherches plus poussées, je vois quil est relativement nouveau, ajouté dans git 1.7.10 (avril 2012): » git clone a appris –single-branch « option pour limiter le clonage à une seule branche (surprise!); les balises qui ne pointent pas dans lhistorique de la branche ne sont pas récupérées. Par exemple:

git clone -b master-next --single-branch git://github.com/Xilinx/ 

entrez la description de limage ici Ici, pour mon application « linker », je vérifie la branche v3.0.10

Commentaires

  • Je ' je ne lai jamais fait non plus, je me souviens avoir vu loption. Je suppose que ' Les s rarement utilisées comme branches supplémentaires sont " bon marché " en taille.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *