Есть ли способ добавить подмодуль в непустую директорию - PullRequest
1 голос
/ 24 июня 2019

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

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Если я правильно вас понял, ваш проект X имеет такую ​​структуру:

- /
  +- docs/
     +- projectdoc1.txt
     +- projectdoc2.txt

.. а затем у вас есть общий проект в другом репозитории git, который содержит (как минимум) один документ, который вы хотите интегрировать в проект X?

(Также я предполагаю, что у вас есть оболочка bash для выполнения команд.)

Предполагая, что вы могли бы использовать символические ссылки для решения вашей проблемы?

Сначала добавьте общий проект в качестве подмодуля в корневой каталог:

git submodule add my-common-repo.git

Теперь у вас есть

- /
  +- docs/
  |  +- projectdoc1.txt
  |  +- projectdoc2.txt
  +- my-common-repo/
     +- commondoc.txt

Теперь перейдите в подкаталог docs и создайте ссылку на commondoc.txt:

cd docs/
ln -s ../my-common-repo/commondoc.txt

Затем вы можете добавить ссылку, как обычный файл:

git add commondoc.txt
git commit -m 'Add commondoc.txt symlink from my-common-repo'

Вот и все. Теперь у вас есть:

- /
  +- docs/
  |  +- projectdoc1.txt
  |  +- projectdoc2.txt
  |  +- commondoc.txt
  +- my-common-repo/
     +- commondoc.txt

И всякий раз, когда вы обновляете my-common-repo / submodule, docs / commondoc.txt обновляется.

0 голосов
/ 24 июня 2019

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

...