diff --git a/README.md b/README.md index a59d921..8921ca9 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ Основные задачи: - Автоматическая регистрация вложенных репозиториев как подмодулей - Централизованное управление множеством репозиториев +- Настройка игнорирования состояния подмодулей в основном репозитории - Автоматизация рутинных операций --- @@ -33,7 +34,7 @@ ### `register-submodules.sh` **Описание:** -Автоматически находит все вложенные Git-репозитории в текущей папке и регистрирует их как подмодули в `.gitmodules`. +Автоматически находит все вложенные Git-репозитории в текущей папке и регистрирует их как подмодули в `.gitmodules`. Поддерживает настройку игнорирования состояния подмодулей. **Использование:** ```bash @@ -47,16 +48,40 @@ | `--help`, `-h` | Показать справку | | `--dry-run` | Только показать, что будет сделано (без изменений) | | `--force`, `-f` | Принудительная перерегистрация подмодулей | +| `--ignore=MODE` | Установить режим игнорирования для ВСЕХ подмодулей | +| `--ignore-submodule PATH:MODE` | Установить режим для конкретного подмодуля | +| `--remove-ignore` | Удалить все настройки игнорирования из .gitmodules | | `--verbose`, `-v` | Подробный вывод | | `--quiet`, `-q` | Минимальный вывод (только ошибки) | +**Режимы игнорирования (`MODE`):** + +| Режим | Описание | +|-------|----------| +| `all` | Полностью скрывает изменения в подмодулях (не показывает ничего) | +| `dirty` | Скрывает только изменения в файлах подмодуля | +| `untracked` | Скрывает только неотслеживаемые файлы в подмодуле | +| `none` | Показывает все изменения (поведение по умолчанию) | + **Примеры:** ```bash # Базовая регистрация ./register-submodules.sh +# Регистрация с игнорированием всех изменений в подмодулях +./register-submodules.sh --ignore=all + +# Регистрация с игнорированием только dirty-изменений +./register-submodules.sh --ignore=dirty + +# Установить ignore только для конкретного подмодуля +./register-submodules.sh --ignore-submodule tools/cam:dirty + +# Удалить все настройки игнорирования +./register-submodules.sh --remove-ignore + # Просмотр без изменений -./register-submodules.sh --dry-run +./register-submodules.sh --dry-run --ignore=all # Принудительная перерегистрация с подробным выводом ./register-submodules.sh --force --verbose @@ -132,6 +157,25 @@ git submodule add https://git.p7net.ru/tools/git_man.git tools/git_man --- +## 🔧 Особенности работы с подмодулями + +### Настройка игнорирования в .gitmodules + +После регистрации подмодулей в файле `.gitmodules` могут появиться секции с настройкой `ignore`: + +```ini +[submodule "tools/cam"] + path = tools/cam + url = https://git.p7net.ru/tools/cam.git + ignore = dirty +``` + +Это позволяет основному репозиторию игнорировать изменения в рабочей директории подмодулей, что особенно полезно при работе с большим количеством вложенных репозиториев. + +**Важно:** Эта настройка не скрывает сами подмодули, а только их внутреннее состояние. Подмодули всегда остаются частью репозитория. + +--- + ## 👤 Автор **Michael BAG**