Отслеживание ветки Remotes/p4/master в git
Вопрос
Я клонирую репозиторий, который был впервые создан git-p4.git-p4 использует ветку «remotes/p4/master», которую я хотел бы отслеживать.Как мне указать git, который клонирует это репо, также отслеживать удаленные устройства/p4/master?Таким образом, я смогу проверить «origin/remotes/p4/master» или что-то в этом роде.
Решение
Вы также можете настроить свойства выборки, чтобы отразить эти ссылки, но не как часть стандартного клона.
Итак, последовательность вроде:
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
.