Как настроить проект git для использования внешнего подмодуля РЕПО?
Я хотел бы создать РЕПО, которое тянет в удаленном РЕПО.
например, скажем, jQuery, как подмодуля:
git://github.com/jquery/jquery.git
каков будет процесс создания РЕПО с jQuery в качестве подмодуля и добавления моего собственного внешнего в качестве удаленного РЕПО.
также, как только это будет настроено, если я нажму / потяну на свой собственный пульт, внешний останется нетронутым?
4 ответов:
- у вас есть проект-назовем это Веб_приложение у которого уже есть репозиторий github
- вы хотите использовать репозиторий jquery в проекте
- вы хотите вытащить РЕПО jquery в свой проект как субмодуль.
подмодули очень, очень просты в обращении и использовании. Предполагая, что у вас уже есть MyWebApp, настроенный как РЕПО, из терминала выполните следующие команды:
cd MyWebApp git submodule add git://github.com/jquery/jquery.git externals/jqueryэтот создаст каталог с именем
externals/jquery* и свяжите его с репозиторием GitHub jquery. Теперь нам просто нужно инициализировать подмодуль и клонировать код к нему:git submodule update --init --recursiveтеперь вы должны клонировать весь последний код в подмодуль. Если РЕПО jquery изменяется, и вы хотите вытащить последний код вниз, просто выдайте снова. Обратите внимание: у меня обычно есть несколько внешних репозиториев в моих проектах, поэтому я всегда группирую репозитории под "внешними" справочник.
онлайн Pro Git Book имеет некоторую хорошую информацию о подмодулях (и git в целом), представленную в удобном для чтения виде. Поочередно,
git help submoduleтакже даст хорошую информацию. Или взгляните на Git Подмодуль Учебник на Git wiki.Я заметил эту запись в блоге, которая говорит о подмодулях и сравнивает их с механизмом SVN Subversion:externals: http://speirs.org/blog/2009/5/11/understanding-git-submodules.html
* как правило, вы всегда должны размещать свои подмодули в их собственном каталоге, например, внешние. Если вы этого не сделаете, ваш корневой каталог проекта может очень быстро загромождаться.
большая часть того, что вам нужно знать, уже получила ответ, поэтому я не буду беспокоиться об этом, однако я нашел небольшую часть информации, которая обычно отсутствует.
Как вы знаете, "git pull "не будет обновлять подмодули, а" git submodules update " не будет загружать последнюю головку этих подмодулей.
чтобы обновить все ваши подмодули до их последней восходящей версии, вы можете использовать
git submodule foreach git pullЕсли вы часто меняете свои подмодули, и есть много чего, тогда "git foreach" станет бесценным.
в конце концов я нашел http://github.com/evilchelu/braid это, казалось, соответствовало тому, как я ожидал, что подмодули и пульты будут работать
Я думаю, что ответ @Hugo может быть тем, что вам нужно, и работает нормально. Так что я нашел более простой способ.
git submodule update --remoteвот и все.
таким образом, полный рабочий процесс может быть:
git clone project-with-submodules git submodule init git config -l git submodule update --remote
Comments