Git и подмодули. Может ли Git repo быть подмодулем? [Дубликат]

Метод static - это один тип метода, который не требует инициализации объекта для его вызова. Вы заметили, что static используется в функции main в Java? Выполнение программы начинается оттуда без создания объекта.

Рассмотрим следующий пример:

 class Languages 
 {
     public static void main(String[] args) 
     {
         display();
     }

     static void display() 
     {
         System.out.println("Java is my favorite programming language.");
     }
  }
197
задан memmons 16 April 2013 в 15:33
поделиться

4 ответа

  1. У вас есть проект - вызывается MyWebApp, у которого уже есть github repo
  2. Вы хотите использовать репозиторий jquery в своем проекте
  3. . Вы хотите jquery repo в ваш проект как подмодуль.

Субмодули действительно, очень легко ссылаются и используются. Предполагая, что MyWebApp уже настроен как репо, из терминала вызывают следующие команды:

cd MyWebApp
git submodule add git://github.com/jquery/jquery.git externals/jquery

Это создаст каталог с именем externals/jquery * и свяжет его с репозиторием github jquery. Теперь нам просто нужно сгенерировать подмодуль и клонировать код:

git submodule update --init --recursive

Теперь у вас должен быть весь последний код, клонированный в подмодуль. Если репозиторий jquery изменяется и вы хотите вывести последний код, просто введите команду submodule update еще раз. Обратите внимание: у меня обычно есть несколько внешних репозиториев в моих проектах, поэтому я всегда группирую репозиции в каталоге «externals».

В онлайн-версии Pro Git Book есть некоторые хорошие информация о подмодулях (и git в целом) представлена ​​в удобном для чтения виде. Кроме того, git help submodule также предоставит хорошую информацию. Или взгляните на Git Submodule Tutorial на git wiki.

Я заметил эту запись в блоге, в которой говорится о подмодулях и сравнивается с механизмом svn: externals Subversion: http://speirs.org/blog/2009/5/11/understanding-git-submodules.html

* Как наилучшая практика, вы всегда должны помещать свои подмодули в свой собственный каталог , таких как внешние. Если вы этого не сделаете, ваш каталог корневых проектов может стать очень загроможденным.

322
ответ дан memmons 18 August 2018 в 01:50
поделиться
  • 1
    Отличное объяснение! Кроме того, подмодули «git help» помогает, если вы хотите немного больше деталей, внутренних элементов и т. д. – WhyNotHugo 29 February 2012 в 07:35
  • 2
    Спасибо, именно то, что мне нужно. – MikeSchinkel 17 February 2013 в 05:54
  • 3
    @Chevi Это зависит от ваших требований. В целом, добавление проекта git в качестве подмодуля в ваш проект является хорошим решением для проектов, которые часто меняются или находятся в процессе разработки. Это позволяет вам легко убедиться, что весь сторонний код в вашем проекте обновлен. Для стороннего кода, который по существу статично-стабильный, зрелый код, который, вероятно, мало изменится с версии на версию, с использованием подмодуля не дает большого значения. – memmons 18 February 2013 в 00:05
  • 4
    извините, но по сравнению с svn externals, это не так просто – Keil 12 March 2013 в 02:50
  • 5
    @Keil Это две команды, git submodule add и git submodule update ... Я не уверен, насколько это проще. – memmons 6 December 2013 в 05:00

Я думаю, что ответ @Hugo может быть тем, что вам нужно, и работает нормально. Таким образом, я нашел более простой способ.

git submodule update --remote

Вот и все.

Таким образом, полный рабочий процесс может быть:

git clone project-with-submodules
git submodule init
git config -l
git submodule update --remote
0
ответ дан Dapaldo 18 August 2018 в 01:50
поделиться

В конце я обнаружил, что http://github.com/evilchelu/braid , похоже, соответствовал тому, как я ожидал, что подмодули и пульты будут работать

2
ответ дан Tom 18 August 2018 в 01:50
поделиться

Большинство из того, что вам нужно знать, уже получили ответ, поэтому я не буду обсуждать это, однако, я нашел небольшую часть информации, которая обычно отсутствует.

Как вы знаете, «git pull» не будет обновлять подмодули, а «обновление git subodules» не будет загружать последнюю HEAD этих подмодулей.

Чтобы обновить все ваши подмодули до их последней версии восходящего потока, вы можете use

git submodule foreach git pull

Если вы часто изменяете свои подмодули и имеете много, тогда «git foreach» станет бесценным.

18
ответ дан WhyNotHugo 18 August 2018 в 01:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: