first commit
This commit is contained in:
@@ -0,0 +1,196 @@
|
||||
# Git Management Tools (`git_man`)
|
||||
|
||||
Набор скриптов и утилит для управления Git-репозиториями, работы с подмодулями и автоматизации повседневных задач.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Содержание
|
||||
|
||||
- [Описание](#описание)
|
||||
- [Скрипты](#скрипты)
|
||||
- [register-submodules.sh](#register-submodulessh)
|
||||
- [Установка](#установка)
|
||||
- [Использование](#использование)
|
||||
- [Требования](#требования)
|
||||
- [Автор](#автор)
|
||||
- [Лицензия](#лицензия)
|
||||
|
||||
---
|
||||
|
||||
## 📖 Описание
|
||||
|
||||
Данный репозиторий содержит вспомогательные скрипты для работы с Git в проектах, где используется множество вложенных репозиториев (монорепозиторий с подмодулями).
|
||||
|
||||
Основные задачи:
|
||||
- Автоматическая регистрация вложенных репозиториев как подмодулей
|
||||
- Централизованное управление множеством репозиториев
|
||||
- Автоматизация рутинных операций
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Скрипты
|
||||
|
||||
### `register-submodules.sh`
|
||||
|
||||
**Описание:**
|
||||
Автоматически находит все вложенные Git-репозитории в текущей папке и регистрирует их как подмодули в `.gitmodules`.
|
||||
|
||||
**Использование:**
|
||||
```bash
|
||||
./register-submodules.sh [ОПЦИИ]
|
||||
```
|
||||
|
||||
**Опции:**
|
||||
|
||||
| Опция | Описание |
|
||||
|-------|----------|
|
||||
| `--help`, `-h` | Показать справку |
|
||||
| `--dry-run` | Только показать, что будет сделано (без изменений) |
|
||||
| `--force`, `-f` | Принудительная перерегистрация подмодулей |
|
||||
| `--verbose`, `-v` | Подробный вывод |
|
||||
| `--quiet`, `-q` | Минимальный вывод (только ошибки) |
|
||||
|
||||
**Примеры:**
|
||||
```bash
|
||||
# Базовая регистрация
|
||||
./register-submodules.sh
|
||||
|
||||
# Просмотр без изменений
|
||||
./register-submodules.sh --dry-run
|
||||
|
||||
# Принудительная перерегистрация с подробным выводом
|
||||
./register-submodules.sh --force --verbose
|
||||
|
||||
# Тихий режим (только ошибки)
|
||||
./register-submodules.sh --quiet
|
||||
```
|
||||
|
||||
**После регистрации:**
|
||||
```bash
|
||||
git add .gitmodules
|
||||
git commit -m "Зарегистрированы все подмодули"
|
||||
git push
|
||||
```
|
||||
|
||||
**При клонировании репозитория с подмодулями:**
|
||||
```bash
|
||||
# Вариант 1: сразу с подмодулями
|
||||
git clone --recursive https://git.p7net.ru/tools/git_man.git
|
||||
|
||||
# Вариант 2: после клонирования
|
||||
git clone https://git.p7net.ru/tools/git_man.git
|
||||
cd git_man
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📂 Структура репозитория
|
||||
|
||||
```
|
||||
git_man/
|
||||
├── README.md # Этот файл
|
||||
├── CHANGELOG.md # История изменений
|
||||
├── register-submodules.sh # Скрипт регистрации подмодулей
|
||||
└── scripts/ # Дополнительные скрипты (планируется)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Установка
|
||||
|
||||
### Способ 1: Клонирование репозитория
|
||||
|
||||
```bash
|
||||
git clone https://git.p7net.ru/tools/git_man.git
|
||||
cd git_man
|
||||
```
|
||||
|
||||
### Способ 2: Добавить в PATH (для глобального доступа)
|
||||
|
||||
```bash
|
||||
# Добавить в ~/.bashrc или ~/.zshrc
|
||||
export PATH="$PATH:/путь/к/git_man"
|
||||
|
||||
# Или создать символическую ссылку
|
||||
sudo ln -s /путь/к/git_man/register-submodules.sh /usr/local/bin/register-submodules
|
||||
```
|
||||
|
||||
### Способ 3: Использовать как подмодуль в другом проекте
|
||||
|
||||
```bash
|
||||
git submodule add https://git.p7net.ru/tools/git_man.git tools/git_man
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 Требования
|
||||
|
||||
- **Git** (версия 1.8.5 или выше)
|
||||
- **Bash** (4.0+)
|
||||
- **Unix-подобная ОС** (Linux, macOS) или **WSL** на Windows
|
||||
|
||||
---
|
||||
|
||||
## 👤 Автор
|
||||
|
||||
**Michael BAG**
|
||||
- Email: [mk@p7net.ru](mailto:mk@p7net.ru)
|
||||
- Репозиторий: [https://git.p7net.ru/tools/git_man](https://git.p7net.ru/tools/git_man)
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Вклад в развитие
|
||||
|
||||
1. Форкните репозиторий
|
||||
2. Создайте ветку для ваших изменений (`git checkout -b feature/amazing-feature`)
|
||||
3. Закоммитьте изменения (`git commit -m 'Add amazing feature'`)
|
||||
4. Отправьте изменения (`git push origin feature/amazing-feature`)
|
||||
5. Создайте Pull Request
|
||||
|
||||
---
|
||||
|
||||
## 📄 Лицензия
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024-2025 Michael BAG
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
---
|
||||
|
||||
## 📝 Обновление
|
||||
|
||||
```bash
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
Для обновления подмодулей (если используются):
|
||||
```bash
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📞 Контакты
|
||||
|
||||
- **Автор:** Michael BAG ([mk@p7net.ru](mailto:mk@p7net.ru))
|
||||
- **Репозиторий:** [https://git.p7net.ru/tools/git_man](https://git.p7net.ru/tools/git_man)
|
||||
- **Проблемы/Предложения:** [https://git.p7net.ru/tools/git_man/issues](https://git.p7net.ru/tools/git_man/issues)
|
||||
Reference in New Issue
Block a user