Подтвердить что ты не робот

Git с использованием поддерева или подмодуля для управления внешними ресурсами

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

Я просто хочу включить различные репозитории в свое репо, как это

website/
 libs/
  js/
   fs-slides [external]
   fs-dialog [external]

и должны иметь возможность легко обновлять эти репозитории. Насколько я понимаю, нет простой возможности включить только один файл из репо, верно? (Но все в порядке.)

Должен ли я использовать подмодули для этого?
Или есть проблемы с этим? Или поддерево намного проще?

4b9b3361

Ответ 1

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

Основной серьезной проблемой, которую вы могли бы использовать подмодули, является обновление их при обновлении обновлений, как описано в "как именно работает подмодуль git:

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

Затем, как Michael комментарии, и, как я подробно изложу выше, вам нужно подтолкнуть подмодуль к его собственному восходящему потоку перед фиксацией и нажатием родительского репо (чтобы не нажимать на непубличный субмодуль)