Фиксация определенных файлов внутреннего неуправляемого репозитория из внешнего управляемого репозитория

Из домашнего каталога ~/ в Linux я хотел бы создать репозиторий полезных файлов, которые я настраивал с течением времени. В частности, например, такие файлы, как ~/.bashrc или ~/.vimrc.

Теперь в домашнем каталоге также есть папка .vim, в которой есть несколько плагинов, которые я клонировал. Например, ~/.vim/plugged/vim-snippets. В этой папке также есть папка .git/ по адресу ~/.vim/plugged/vim-snippets/.git. Это репозитории, которые я клонировал просто для использования в качестве пользователя. Они разработаны и поддерживаются кем-то другим.

Наличие этой последней папки .git/, по-видимому, не позволяет отслеживать что-либо в папке ~/.vim/plugged/vim-snippets/ или ее подпапках из репозитория, который я хотел бы создать в ~/. Некоторые из файлов в ~/.vim/plugged/vim-snippets/, которые я настроил и изменил, включают, например, ~/.vim/plugged/vim-snippets/UltiSnips/tex.snippets, который содержит мои настройки для файлов LaTeX. Я хотел бы поместить этот файл в свой личный репозиторий системы контроля версий под ~/.

Несмотря на наличие !/.vim/plugged/vim-snippets/ в ~/.gitignore, файл tex.snippets не отслеживается. Однако при прочих равных условиях удаление папки .git из ~/.vim/plugged/vim-snippets действительно отслеживает файл tex.snippets.

Можно ли как-то решить эту проблему? Я просмотрел подмодули, но обратите внимание, что я не хочу фиксировать в своем репозитории под ~/ все под ~/.vim/plugged/vim-snippets/, что, похоже, является проблемой, решаемой подмодулями. Я настраиваю только один или два файла в ~/.vim/plugged/vim-snippets/, которые я хотел бы передать в свой личный репозиторий системы управления версиями под ~/. Является ли удаление папки .git/ из /.vim/plugged/vim-snippets/ единственным способом добиться этого?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В Git нет способа сделать именно то, что вы хотите — или, по крайней мере, то, что, я думаю, вы хотите, то есть что-то вроде наложения/чередования.

У меня есть для личного пользования моя собственная система точечных файлов, и у меня была бы та же проблема, если бы я настроил репозитории с прямым клонированием. На данный момент, если бы я сделал это, я бы пошел дальше и использовал подмодули (или добавил что-то похожее на них в свою личную систему файлов точек). До сих пор мне везло в том, что дополнительные возможности vim, которые я использую, уже достаточно настраиваются, не затрагивая исходный репозиторий, и мне не нужно этого делать. Так что я на самом деле не реализовал ни один из трюков, о которых вы говорите.

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

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

Tryer 25.11.2022 14:22

Нет, за исключением того, что вы несете ответственность за обслуживание всего подрепозитория, не имея возможности напрямую обновлять «восходящие» обновления для этого пакета vim. (Конечно, вы можете объединить их вручную.)

torek 25.11.2022 14:23

Если «основной» разработчик что-то изменит в своем репозитории, могу ли я просто удалить этот плагин/пакет, который полностью очистит эту папку в ~/.vim/plugged/, а затем переустановить его, который повторно заполнит эту папку, включая новую папку .git/ (которую я должен иметь удалять снова, до бесконечности)?

Tryer 25.11.2022 14:26

Да, это метод "слияния вручную". Я делал это в прошлом, это быстро надоедает.

torek 25.11.2022 14:30

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