Как я могу переместить большие двоичные файлы из основного в подмодуль git? - PullRequest
2 голосов
/ 28 ноября 2011

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

Вот что я сделал:

  1. Я создал отдельный репозиторий только длявидео на ssh: //dev.example.org/var/git/project/microsite_videos и помещаю туда видео.
  2. Я удалил видео из своего основного репо на ssh: //dev.example.org/ var / git / project / microsite и совершил удаление.Я понимаю, что это не удаляет видео из истории, но я хотел убедиться, что я понял подмодули, прежде чем изменить историю.
  3. Я добавил видео обратно как подмодуль:

    git submodule add ssh://dev.example.org/var/git/project/microsite_videos videos
    
  4. Я передал эти изменения мастеру.

Вот мой файл .gitmodules:

[submodule "videos"]
    path = videos
    url = ssh://dev.example.org/var/git/project/microsite_videos

Сначала казалось, что он работаетОК, но я не совсем понимаю, каково его поведение.В частности, только сейчас я слил master в ветку и папка videos просто исчезла.Файл .gitmodules все еще там, но любая попытка вытащить или обновить папку видео просто дает мне новое приглашение, не показывая ничего делать.

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

1 Ответ

0 голосов
/ 29 ноября 2011

Не забывайте, что подмодули - это просто указатель на конкретную фиксацию определенного репо.
См. " Подмодули Git: укажите ветку / тег ".

Значениечто после слияния у вас все еще есть указатель (в .gitmodules и как специальная запись в дереве), но вам нужно git submodule update для обновления содержимого подмодуля.
Смотрите " Git submodulehead"если это обновление не получится.

...