Skip to content

Коміт та 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