.gitignore: искусство скрывать лишнее от посторонних глаз 🕵️♂️
Вы только что сделали
Содержимое файла .gitignore для Python-проекта:
А какие самые странные или полезные шаблоны были в ваших файлах .gitignore? Делитесь находками, чтобы все могли сделать свои репозитории чище!
🌐 @helcode | #git
Вы только что сделали
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
🌐 @helcode | #git
"Это работало вчера!" - фраза, от которой стынет кровь. Git - это не просто способ хранить код, а полноценная машина времени, которая позволяет вернуться к любому моменту жизни проекта.
➤ Коммит - это слепок состояния файлов в определенный момент времени.
➤ Ветка- это указатель на конкретный коммит, который движется вперед.
➤ Слияние - это объединение изменений из разных веток.
Продвинутые концепции:
➤ Rebase vs Merge - два способа интегрировать изменения
➤ Interactive rebase - переписывание истории (осторожно!)
➤ Git hooks - автоматизация на события в Git
Git - это самый дешевый и эффективный способ путешествовать во времени. Правда, в отличие от Делореана, он не может попасть в будущее, где ваш код уже написан.
🌐 @helcode | #git
🔥6
Продвинутая работа с Git: от базовых команд до эффективного workflow
Цель: освоить профессиональные техники работы с Git
1. Интерактивный rebase для чистой истории
2. Поиск изменений в истории
3. Работа с изменениями
4. Эффективный workflow
Лучшие практики:
➤ Коммитить часто, пушить редко
➤ Использовать semantic commit messages
➤ Регулярно синхронизироваться с upstream
➤ Проверять историю перед мержем
🌐 @helcode | #git
Цель: освоить профессиональные техники работы с 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
👍4❤1👌1