01-slash-commands: 7 slash command examples 02-memory: 3 CLAUDE.md examples Progress: 25/67 files Ref: luongnv89/claude-howto#63
156 lines
6.5 KiB
Markdown
156 lines
6.5 KiB
Markdown
---
|
||
description: Додати всі зміни до індексу, створити коміт та відправити на віддалений сервер (використовуйте з обережністю)
|
||
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*), Bash(git push:*), Bash(git diff:*), Bash(git log:*), Bash(git pull:*)
|
||
---
|
||
|
||
# Коміт та Push усього
|
||
|
||
⚠️ **УВАГА**: Додає ВСІ зміни до індексу, створює коміт та відправляє на віддалений сервер. Використовуйте лише коли впевнені, що всі зміни належать разом.
|
||
|
||
## Робочий процес
|
||
|
||
### 1. Аналіз змін
|
||
Запустити паралельно:
|
||
- `git status` — показати змінені/додані/видалені/невідстежувані файли
|
||
- `git diff --stat` — показати статистику змін
|
||
- `git log -1 --oneline` — показати останній коміт для стилю повідомлення
|
||
|
||
### 2. Перевірки безпеки
|
||
|
||
**❌ ЗУПИНИТИ та ПОПЕРЕДИТИ при виявленні:**
|
||
- Секрети: `.env*`, `*.key`, `*.pem`, `credentials.json`, `secrets.yaml`, `id_rsa`, `*.p12`, `*.pfx`, `*.cer`
|
||
- API-ключі: Будь-які змінні `*_API_KEY`, `*_SECRET`, `*_TOKEN` з реальними значеннями (не заповнювачі типу `your-api-key`, `xxx`, `placeholder`)
|
||
- Великі файли: `>10MB` без Git LFS
|
||
- Артефакти збірки: `node_modules/`, `dist/`, `build/`, `__pycache__/`, `*.pyc`, `.venv/`
|
||
- Тимчасові файли: `.DS_Store`, `thumbs.db`, `*.swp`, `*.tmp`
|
||
|
||
**Валідація API-ключів:**
|
||
Перевірити змінені файли на патерни:
|
||
```bash
|
||
OPENAI_API_KEY=sk-proj-xxxxx # ❌ Виявлено реальний ключ!
|
||
AWS_SECRET_KEY=AKIA... # ❌ Виявлено реальний ключ!
|
||
STRIPE_API_KEY=sk_live_... # ❌ Виявлено реальний ключ!
|
||
|
||
# ✅ Допустимі заповнювачі:
|
||
API_KEY=your-api-key-here
|
||
SECRET_KEY=placeholder
|
||
TOKEN=xxx
|
||
API_KEY=<your-key>
|
||
SECRET=${YOUR_SECRET}
|
||
```
|
||
|
||
**✅ Перевірити:**
|
||
- `.gitignore` правильно налаштований
|
||
- Немає конфліктів злиття
|
||
- Правильна гілка (попередити якщо main/master)
|
||
- API-ключі є лише заповнювачами
|
||
|
||
### 3. Запит підтвердження
|
||
|
||
Представити резюме:
|
||
```
|
||
📊 Резюме змін:
|
||
- X файлів змінено, Y додано, Z видалено
|
||
- Загалом: +AAA вставок, -BBB видалень
|
||
|
||
🔒 Безпека: ✅ Без секретів | ✅ Без великих файлів | ⚠️ [попередження]
|
||
🌿 Гілка: [назва] → origin/[назва]
|
||
|
||
Я виконаю: git add . → commit → push
|
||
|
||
Введіть 'yes' для продовження або 'no' для скасування.
|
||
```
|
||
|
||
**ЧЕКАТИ явного "yes" перед продовженням.**
|
||
|
||
### 4. Виконання (після підтвердження)
|
||
|
||
Запустити послідовно:
|
||
```bash
|
||
git add .
|
||
git status # Перевірка індексу
|
||
```
|
||
|
||
### 5. Генерація повідомлення коміту
|
||
|
||
Проаналізувати зміни та створити conventional commit:
|
||
|
||
**Формат:**
|
||
```
|
||
[тип]: Короткий опис (макс. 72 символи)
|
||
|
||
- Ключова зміна 1
|
||
- Ключова зміна 2
|
||
- Ключова зміна 3
|
||
```
|
||
|
||
**Типи:** `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`, `perf`, `build`, `ci`
|
||
|
||
**Приклад:**
|
||
```
|
||
docs: Update concept README files with comprehensive documentation
|
||
|
||
- Add architecture diagrams and tables
|
||
- Include practical examples
|
||
- Expand best practices sections
|
||
```
|
||
|
||
### 6. Коміт та Push
|
||
|
||
```bash
|
||
git commit -m "$(cat <<'EOF'
|
||
[Згенероване повідомлення коміту]
|
||
EOF
|
||
)"
|
||
git push # Якщо невдача: git pull --rebase && git push
|
||
git log -1 --oneline --decorate # Перевірка
|
||
```
|
||
|
||
### 7. Підтвердження успіху
|
||
|
||
```
|
||
✅ Успішно відправлено на віддалений сервер!
|
||
|
||
Коміт: [хеш] [повідомлення]
|
||
Гілка: [гілка] → origin/[гілка]
|
||
Змінено файлів: X (+вставок, -видалень)
|
||
```
|
||
|
||
## Обробка помилок
|
||
|
||
- **git add невдача**: Перевірити дозволи, заблоковані файли, переконатися що репо ініціалізовано
|
||
- **git commit невдача**: Виправити pre-commit хуки, перевірити git config (user.name/email)
|
||
- **git push невдача**:
|
||
- Non-fast-forward: `git pull --rebase && git push`
|
||
- Немає віддаленої гілки: `git push -u origin [гілка]`
|
||
- Захищена гілка: Використати PR-процес замість цього
|
||
|
||
## Коли використовувати
|
||
|
||
✅ **Доцільно:**
|
||
- Оновлення документації в кількох файлах
|
||
- Функція з тестами та документацією
|
||
- Виправлення помилок у кількох файлах
|
||
- Форматування/рефакторинг всього проєкту
|
||
- Зміни конфігурації
|
||
|
||
❌ **Уникати:**
|
||
- Невпевненість у тому, що комітиться
|
||
- Містить секрети/чутливі дані
|
||
- Захищені гілки без рев'ю
|
||
- Присутні конфлікти злиття
|
||
- Потрібна гранулярна історія комітів
|
||
- Pre-commit хуки не проходять
|
||
|
||
## Альтернативи
|
||
|
||
Якщо користувач хоче більше контролю, запропонувати:
|
||
1. **Вибіркове додавання**: Переглянути/додати конкретні файли
|
||
2. **Інтерактивне додавання**: `git add -p` для вибору патчів
|
||
3. **PR-процес**: Створити гілку → push → PR (використати команду `/pr`)
|
||
|
||
**⚠️ Памʼятайте**: Завжди переглядайте зміни перед push. Якщо сумніваєтесь, використовуйте окремі git-команди для більшого контролю.
|
||
|
||
---
|
||
**Останнє оновлення**: 9 квітня 2026
|