Git, вложенные репозитарии без submodules
Если Гит увидит в папке папку .git, то он игнорирует и папку, и все что в ней. Для работы с вложенными репозитариями предполагается использовать submodules. Это не самая простая вещь, и иногда просто хочется, чтобы папка была сразу и во вложенном репозитарии, и в большом, внешнем, без возни с подмодулями. Примерно то же можно сказать и про поддеревья (subtrees).
Еще одна закавыка со вложенными репозитариями: вложенные .gitignore. Гит будет их радостно использовать, а кроме того они имеют приоритет над корневым gitignore.
Обойти обе проблемы можно простым и некрасивым способом: переименовывать и .git, и .gitignore перед коммитом и возвращать их обратно. Простой баш-скрипт для этого выглядит так:
mv ~/www/site/.git ~/www/site/.2git
mv ~/www/site/.gitignore ~/www/site/.2gitignore
git add .
git commit -m "new backup"
mv ~/www/site/.2git ~/www/site/.git
mv ~/www/site/.2gitignore ~/www/site/.gitignore
Ближайшие сообщения
Похожие сообщения
- Git, переключать ветки без коммита (Stash)
- Git, прочее
- Git, отмена изменений
- Работа с Git в Windows и Linux одновременно
- Git, работа с ветками
- Git, работа с удаленными репозиториями