Использование подмодулей git с моим собственным репо

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

У меня есть github репо с моими точечными файлами, в том числе для vim. Я использую патоген с Vim, поэтому естественный способ получить плагины швов, чтобы быть

git submodule add https://github.com/msanders/snipmate.vim.git vim/bundle/snipmate
...
git submodule init
git submodule update
git submodule foreach git submodule init
git submodule foreach git submodule update

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

Первая проблема git status всегда показывает мне

# modified:   vim/bundle/snipmate (untracked content)
# ...

в # Changed but not updated: раздел и git add vim/bundle/snipmate не помогает Это довольно раздражает.

Вторая проблема заключается в том, что я, очевидно, не использую фрагменты снипмата по умолчанию, я хочу изменить их, и из-за патогенов фрагменты хранятся в папке снипмата, которая является субмодулем, а не моим собственным репо. Конечно, я мог бы просто clone их там, или даже создать ответвление некоторых из них, но это не похоже на хорошее решение:

  • Это портит мой собственный код с кодом другого, который можно найти на github;
  • Я не собираюсь изменять snipmate, я собираюсь настроить его;
  • Все это делает сложным или даже невозможным обновление тридцати частей плагинов.

Может быть, кто-то может помочь с поиском "правильного" ответа?

2 ответа

Решение

Вы могли бы начать с чтения документа snipmate, в котором говорится, что рекомендуемое местоположение по умолчанию для ваших собственных фрагментов (предположим, что ваш материал находится под ~/.vim) ~/.vim/snippets/<filetype>.snippets, За пределами каталога плагина, за пределами субмодуля.

Да, подмодули Git - это круто, но они, вероятно, не идеальное решение для управления вашей конфигурацией Vim.

Я использую snipmate и патоген с vim. Pathogen делает возможным использование подмодулей (и намного проще!)

Мой плагин snipmate установлен здесь:

.vim/bundle/snipmate

Мои фрагменты установлены здесь:

.vim/bundle/snipmate-snippets

Пример фрагмента приведен здесь:

.vim/bundle/snipmate-snippets/snippets/c.snippets

У меня также есть репозиторий для работы с фрагментами. Они здесь:

.vim/bundle/work/snippets/cpp.snippets

Пока в вашем runtimepath есть папка с фрагментами (:help rtp), ты в порядке. Это магия патогена.

Для настройки моих подмодулей я сделал:

git submodule add git://github.com/garbas/vim-snipmate.git bundle/snipmate
git submodule add git://github.com/honza/snipmate-snippets.git bundle/snipmate-snippets

Когда я хочу обновить репозиторий Vim, я делаю это:

git pull origin master
git submodule update --init

Если я на самом деле заменил пульт для подмодуля (например, если я раздвоил snipmate на github и хочу указать свое локальное репо на новый форк), я изменил.gitmodules и сделал:

git submodule sync

С помощью субмодулей будет проще обновлять git submodule git pull origin и легче изменить и отправить обновления обратно в сопровождающий.

Другие вопросы по тегам