2015-02-26 3 views
3

Я «следую» публичному проекту (например, opencv): это I clone ed его локально в мою среду, и я использую его как компонент более крупного проекта, который я частным образом изучаю ,Индивидуально управлять общественным проектом - GIT

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

То есть у меня есть локальный проект, который управляет двумя gits: как публичный git (из которого я все еще хочу получать периодические обновления), так и мой локальный git (на который я совершаю все свои изменения, что я не буду совершать публичный git).

Как я могу достичь этого репозитория «dual git»?

+0

Надеюсь, я поставил свой вопрос ясным, я был бы рад прояснить, если потребуется. – Shai

ответ

3

Я использую его в качестве компонента более крупного проекта, я в частном исследовании

Если ваш крупный проект сам по себе является GIT репозиторий (с частного вверх по течению репо), вы можете добавить Itseez/opencv как submodule.
Вернее, вы должны добавить fork of that repo как подмодуль.

Таким образом, вы можете сохранить свое частное репо частным образом, сохраняя при этом ссылку на свою вилку в том же репо и записывая возможные изменения opencv (или updating opencv with new commits from the original repo).

Родитель частный репо делает запись gitlink, special entry in the index, который представляет состояние opencv подмодуль в данный момент времени: если вы сделаете новое обязательство в OpenCV подмодуль, вам нужно, чтобы подтолкнуть их, но также добавить и передать новый SHA1 этого репо в своем родительском репо.

+0

ничего себе! Я довольно неопытен в git, мне понадобится время, чтобы обработать этот ответ. Большое спасибо! – Shai