Suivre une branche distantes / p4 / master dans git
Question
Je suis en train de cloner un dépôt qui a été généré par git-p4. git-p4 utilise une branche 'remotes / p4 / master' que j'aimerais suivre. Comment dire à git, qui clone ce repo, de suivre également les télécommandes / p4 / master? Ainsi, je pourrai consulter "origine / télécommandes / p4 / maître". ou quelque chose.
La solution
Vous pouvez également ajuster les propriétés d'extraction pour refléter ces références, bien que cela ne fasse pas partie d'un clone standard.
Donc, une séquence comme:
git clone ~/p4/git/services/info-service.git
cd info-service
git config --add remote.origin.fetch +refs/remotes/p4/*:refs/remotes/origin/p4/*
git fetch origin
Ceci va chercher refs / remotes / p4 / release / 1.1
, par exemple dans info-service.git
pour qu'il soit refs / remotes / origin / p4 / release / 1.1
dans votre clone et vous pouvez créer une branche basée sur celle-ci avec git checkout -b r1.1-corrige l’origine / p4 / release / 1.1
Cela étant dit, dans mon référentiel de répliques Perforce, je crée de véritables branches pour refléter toutes les branches distantes p4, en grande partie pour éviter de passer par tout ce qui précède. Cela me donne également une chance de corriger le nommage des préfixes de chemin p4 aux noms de branche git (donc p4 / main
devient maître
, p4 / release / 1.1
devient r1.1
, etc.). J'utilise ma propre réplication p4-à-git, mais vous pouvez faire la même chose en boucle sur les références distantes p4 avec git pour-each-ref
et en configurant les branches locales à l'aide de git update- ref
.