Распространение удаленного местоположения с помощью клона / push / pull - PullRequest
7 голосов
/ 03 января 2012

В нашем проекте используется несколько сторонних библиотек с открытым исходным кодом, некоторые из которых требуют пользовательских модификаций.

Для каждой библиотеки мы создали собственный локальный репозиторий git, добавили исходное местоположение источника как vendor remote, клонировали оттуда, изменили его по мере необходимости и отправили во внутренний удаленный репозиторий (назовем его начало ).

Эти репозитории затем используются в качестве подмодулей в нашем основном проекте.

Проблема: «Vendor» remote url не распространяется на «origin» и поэтому теряется для любого, кто клонирует внутренний репозиторий библиотеки.

Каждый раз, когда вы хотите объединить новые восходящие изменения для библиотеки, вам нужно снова найти и вручную добавить vendor remote (или использовать точно такой же локальный репозиторий, созданный в начале, если он все еще имеется).

Есть ли лучший способ сохранить URL-адрес хранилища vendor , чтобы его мог распространять и использовать каждый разработчик? Добавление дополнительного файла (например, clone_from_here) в библиотеку также выглядит не очень элегантно.

1 Ответ

1 голос
/ 04 января 2012

Вы можете сделать это через .git/config.После того, как вы успешно извлекли или передали изменения, посмотрите на файл .git/config и запишите удаленные url и fetch

После того, как репозиторий был клонирован вашими разработчиками,откройте .git/config на компьютере разработчика и добавьте скопированную строку.Пример -

[remote "vendor"]
    url = git@xxx.com:xxxxx/xxxxxxx.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Ваши разработчики теперь могут выдвигать или извлекать данные о поставщике в этом примере.

Если вам нужен больший контроль над написанием URL-адреса выборки - на gitguys есть отличная документацияhttp://goo.gl/JGaKD

...