Используйте Git для синхронизации одного проекта из репозитория "Репо"
Некоторые люди в моей компании используют Repo для управления несколькими репозиториями. Мне нужно прочитать (не изменять / фиксировать) часть этого содержимого.
Я надеюсь избежать установки Repo и просто использовать Git. Вот инструкции для получения репозитория, который мне нужен:
repo init -u git://git-master/x/manifest.git -b dev/foo-bar -m bar.xml
repo sync
Как я могу использовать vanilla Git для синхронизации этой же информации?
1 ответ
git-repo использует файл с именем manifest.xml
перечислить все репозитории git вашего проекта.
Чтобы получить доступ к хранилищу с помощью git
только вы просто должны получить manifest.xml
прочитайте URL хранилища и клонируйте его.
Первый: получить манифест
$ git clone -b dev/foo-bar git://git-master/x/manifest.git
$ vi manifest/bar.xml
Второе: прочитайте URL хранилища
У вас должно быть что-то вроде этого (проверьте формат манифеста):
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="origin" fetch="git://git-master/x" />
<default revision="master" remote="origin" />
<project name="my/first/project" />
<project name="my/second/project" />
</manifest>
Найдите репозиторий, который вы хотите клонировать (например, my/second/project
), создайте URL клона из manifest.remote.fetch
имущество. Здесь мы имеем:
clone URL = git://git-master/x/my/second/project
Обратите внимание manifest.remote.fetch
может быть абсолютным или относительным URL. Если это родственник, вы должны добавить URL-адрес манифеста.
Третье: клонировать хранилище
git clone git://git-master/x/my/second/project
ПРИМЕЧАНИЕ. Вы можете проверить manifest.default.revision
и manifest.project.revision
чтобы быть уверенным, что у вас есть хорошая ветка.
Тем не менее, как repo
это всего лишь скрипт, который вы можете легко установить в свой домашний каталог, например так:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo