From 6c4ffac875f6e7e85d578aa04a412cf2413c079d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D1=83=D0=B4?= =?UTF-8?q?=D1=80=D1=8F=D0=B2=D1=86=D0=B5=D0=B2?= Date: Sun, 19 Jul 2026 08:36:24 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) 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**