Вы также можете настроить свойства выборки так, чтобы они отражали эти ссылки, но не как часть стандартного клона.
Итак, последовательность вроде:
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
Это приведет к извлечению refs/remotes/p4/release/1.1
, например, в info-service.git
, чтобы быть refs/remotes/origin/p4/release/1.1
в вашем клоне, и вы можете создать ветвь на его основе с помощью git checkout -b r1.1-fixes origin/p4/release/1.1
Сказав все это, в своих репозиториях Perforce я создаю настоящие ветки, чтобы отразить все удаленные ветки p4, в основном, чтобы избежать необходимости проходить через все вышеперечисленное. Это также дает мне возможность исправить присвоение имен из префиксов пути p4 именам веток git (поэтому p4/main
становится master
, p4/release/1.1
становится r1.1
и т. Д.). Я использую свою собственную репликацию p4-to-git, но вы можете сделать то же самое, зацикливаясь на удаленных ссылках p4 с git for-each-ref
и устанавливая локальные ветви с помощью git update-ref
.