Helcode | Хелкод | Скрипты и автоматизация
993 subscribers
52 photos
34 links
☎️ Контакты для связи: @helcodeadm
Download Telegram
.gitignore: искусство скрывать лишнее от посторонних глаз 🕵️‍♂️

Вы только что сделали git add . и увидели в коммите кучу мусора: кэши, логи, пароли, системные файлы. Паника! Как их убрать? Ответ — файл .gitignore. Он говорит Git'у, чем можно пренебречь.

.gitignore — это простой текстовый файл, в котором шаблонами перечисляются файлы и директории, которые не нужно отслеживать в Git.

Содержимое файла .gitignore для Python-проекта:
# Игнорируем кэш Python
__pycache__/
*.py[cod]

# Игнорируем виртуальное окружение
venv/
.env/

# Игнорируем логи
*.log

# Игнорируем файлы с чувствительными данными (пароли, ключи)
secrets.yml
config.json
*.key

# Игнорируем системные файлы
.DS_Store
Thumbs.db


А какие самые странные или полезные шаблоны были в ваших файлах .gitignore? Делитесь находками, чтобы все могли сделать свои репозитории чище!

Коммит без .gitignore — это как вынести мусорное ведро на сцену во время важного выступления. Все видят не только вашу гениальную идею, но и все отходы процесса. 🗑


🌐 @helcode | #git
👍3
Git: не просто система контроля версий, а машина времени для вашего кода

"Это работало вчера!" - фраза, от которой стынет кровь. Git - это не просто способ хранить код, а полноценная машина времени, которая позволяет вернуться к любому моменту жизни проекта.

➤ Коммит - это слепок состояния файлов в определенный момент времени.
➤ Ветка- это указатель на конкретный коммит, который движется вперед.
➤ Слияние - это объединение изменений из разных веток.

Продвинутые концепции:
➤ Rebase vs Merge - два способа интегрировать изменения
➤ Interactive rebase - переписывание истории (осторожно!)
Git hooks - автоматизация на события в Git

Git - это самый дешевый и эффективный способ путешествовать во времени. Правда, в отличие от Делореана, он не может попасть в будущее, где ваш код уже написан.


🌐 @helcode | #git
🔥6
Продвинутая работа с Git: от базовых команд до эффективного workflow

Цель: освоить профессиональные техники работы с Git

1. Интерактивный rebase для чистой истории
# Перебазирование последних 5 коммитов
git rebase -i HEAD~5

# Команды для rebase:
# pick - использовать коммит
# reword - изменить сообщение коммита
# edit - остановиться для редактирования
# squash - объединить с предыдущим коммитом
# fixup - объединить, отбросив сообщение

# Пример использования:
git rebase -i HEAD~3
# Редактируем файл:
pick a1b2c3d Добавить функцию X
squash b2c3d4e Исправить опечатку
reword c3d4e5f Обновить документацию


2. Поиск изменений в истории
# Поиск по сообщениям коммитов
git log --grep="bugfix" --oneline

# Поиск изменений в коде
git log -S "function_name" --oneline

# Поиск автора
git log --author="john" --since="2024-01-01"

# Визуализация истории
git log --graph --oneline --all


3. Работа с изменениями
# Интерактивное добавление изменений
git add -p

# Просмотр изменений перед коммитом
git diff --staged

# Исправление последнего коммита
git commit --amend

# Временное сохранение изменений
git stash push -m "WIP: работа над функцией X"
git stash list
git stash pop


4. Эффективный workflow
# Создание feature ветки
git checkout -b feature/new-authentication

# Регулярные коммиты с понятными сообщениями
git commit -m "feat(auth): добавить OAuth2 провайдеры

- Реализована поддержка Google OAuth
- Добавлена поддержка GitHub OAuth
- Написаны тесты для новых провайдеров"

# Синхронизация с основной веткой
git fetch origin
git rebase origin/main

# Разрешение конфликтов
git mergetool
git rebase --continue

# Пулл-реквест с чистой историей
git push origin feature/new-authentication


Лучшие практики:

➤ Коммитить часто, пушить редко
➤ Использовать semantic commit messages
➤ Регулярно синхронизироваться с upstream
➤ Проверять историю перед мержем

🌐 @helcode | #git
👍41👌1