Git Использовать Удаленный Источник Во время Push - PullRequest
1 голос
/ 28 мая 2010

У меня есть локальный репозиторий git "центральный" репозиторий на github. Я работаю над частью проекта, в то время как друг работает над связанной частью, которая находится в совершенно отдельном репо, могу ли я просто связываться напрямую с репо моего друга?

Например, приложение называется виджетами. У меня есть весь мой код в widgets / app / mycode , и мой друг пишет код, который входит в widgets / plugins / awesome / hiscode .

Я хочу всегда иметь возможность http://github.com/mycode/widgets/plugins/hiscode быть прямой ссылкой или клоном http://github.com/hiscode/awesome?

Возможно, я упустил что-то простое в своем вопросе или знании git, если так, пожалуйста, спросите, и я буду рад попытаться заполнить пробелы.

Я развертываюсь на своем производственном сайте через Capistrano, так что, может быть, какой-то сценарий может быть проще? Я не знаю (вот почему я публикую) !!

Ответы [ 2 ]

1 голос
/ 28 мая 2010

Как упомянуто в подмодулях git, истинная природа , это возможно, объявив в widgets/plugins/awesome/hiscode подмодуль, ссылающийся на http://github.com/hiscode/awesome.

Затем вы можете регулярно извлекать из этого подмодуля его последние изменения, чтобы обновить его, при условии, что вы снова фиксируете из каталога widgets/ (который является вашим «основным» проектом, то есть проектом, который содержит подмодуль).
Таким образом, ваш основной проект запишет новый SHA1 обновленных подмодулей.

Вы можете даже напрямую развиваться в этом подмодуле, нажимая непосредственно на http://github.com/mycode/widgets/plugins/hiscode (при этом все еще фиксируя виджет, снова для записи нового SHA1).
Но вы должны помнить, чтобы сначала извлекать ветку в этом подмодуле, потому что «обновление подмодуля» всегда инициализирует / обновляет его как отдельную головку .

1 голос
/ 28 мая 2010

Похоже, что субмодули было бы хорошим решением. Я не уверен на 100% по URL-адресу github, но это должно помочь вам:

git submodule add http://github.com/hiscode/awesome plugins/hiscode

Чтобы обновить подмодуль и убедиться, что вы все еще можете зафиксировать «удивительный плагин», вы выполните следующее из корня хранилища:

git submodule update<br> cd plugins/hiscode<br> git checkout master

Обратите внимание, что в данный момент вы по сути вкладываете git-репозитории, а не фактически делаете одну часть другой.

Для пользователей SVN: это похоже на свойство svn: externals в Subversion с определенным номером ревизии. Выполнение вышеуказанного сценария аналогично обновлению номера редакции в свойстве svn.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...