Как настроить проект git для использования внешнего подмодуля РЕПО?



Я хотел бы создать РЕПО, которое тянет в удаленном РЕПО.



например, скажем, jQuery, как подмодуля:



git://github.com/jquery/jquery.git


каков будет процесс создания РЕПО с jQuery в качестве подмодуля и добавления моего собственного внешнего в качестве удаленного РЕПО.



также, как только это будет настроено, если я нажму / потяну на свой собственный пульт, внешний останется нетронутым?

781   4  

4 ответов:

  1. у вас есть проект-назовем это Веб_приложение у которого уже есть репозиторий github
  2. вы хотите использовать репозиторий jquery в проекте
  3. вы хотите вытащить РЕПО 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

    Ничего не найдено.