Использование подмодулей 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
и легче изменить и отправить обновления обратно в сопровождающий.