8. Настройка под задачи команды #
8.1. Работа с .gitignore
#
Файл .gitignore
определяет, какие файлы и папки не должны попадать в репозиторий. Это особенно важно для временных файлов, конфигураций, создаваемых инструментами, или больших артефактов сборки.
Создание файла .gitignore
#
- Создайте файл
.gitignore
в корне репозитория. - Укажите пути или шаблоны файлов для исключения.
Пример:
# Игнорировать файлы логов
*.log
# Игнорировать временные файлы редактора
*.swp
# Игнорировать директорию build
build/
Примеры исключений #
- Исключить все файлы
.tmp
:*.tmp
- Исключить всю папку
dist/
:dist/
- Исключить файлы, кроме одного:
*.log !important.log
Использование глобального .gitignore
#
Если есть файлы, которые вы хотите игнорировать во всех репозиториях (например, временные файлы IDE):
- Настройте глобальный
.gitignore
:git config --global core.excludesfile ~/.gitignore_global
- Создайте файл
~/.gitignore_global
и добавьте шаблоны.
8.2. Настройка Git hooks #
Git hooks — это сценарии, которые выполняются на определённых этапах работы с Git.
Типы хуков #
- Клиентские (local hooks): выполняются локально.
Пример:pre-commit
,pre-push
. - Серверные (server hooks): выполняются на сервере.
Пример:post-receive
,update
.
Настройка хуков #
- Найдите папку
.git/hooks
в репозитории. - Создайте или отредактируйте скрипт нужного хука (например,
pre-commit
). - Убедитесь, что файл имеет права на выполнение:
chmod +x .git/hooks/pre-commit
Пример: проверка форматирования перед коммитом #
Скрипт для проверки файлов на соответствие стилю:
#!/bin/bash
if ! black --check .; then
echo "Code is not formatted. Please run black."
exit 1
fi
Использование менеджеров хуков #
Для централизованного управления хуками используйте инструменты, такие как Husky (для JavaScript) или pre-commit (мультиплатформенный инструмент).
8.3. Автоматизация с помощью Aliases #
Aliases позволяют создавать короткие команды для выполнения часто используемых операций.
Создание alias #
Добавьте alias в конфигурацию Git:
git config --global alias.имя команда
Пример:
- Укороченный
git status
:git config --global alias.st status
- Вызов
git log
в компактной форме:git config --global alias.lg "log --oneline --graph --all"
Просмотр созданных alias #
git config --get-regexp alias
Пример использования alias #
Вместо команды:
git log --oneline --graph --all
Вы просто вводите:
git lg
8.4. Настройка политики слияний и ревью #
Выбор стратегии слияния #
Git поддерживает различные стратегии слияния:
merge
(по умолчанию): сохраняет историю слияний.git merge имя_ветки
rebase
: переписывает историю, делая её линейной.git rebase имя_ветки
Настройка политики в репозитории #
Если команда работает в одной ветке, например main
, можно настроить обязательный pull request для всех изменений.
Настройка pull request в GitHub/GitLab:
- Включите правило “Branch Protection Rules”.
- Установите обязательный статус ревью перед слиянием.
Настройка локальных правил для команды:
Внедрите требования, например:- Все коммиты проходят ревью.
- Используйте
git rebase
для фиксации истории перед слиянием.
Инструменты для ревью кода #
- GitHub/GitLab: встроенные системы ревью.
- Code Review Tools: инструменты, такие как Review Board или Phabricator.
Автоматизация проверок #
Настройте CI/CD для автоматической проверки кода на ошибки перед слиянием. Пример с GitHub Actions:
name: CI
on:
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run Tests
run: make test
Итоги #
.gitignore
защищает репозиторий от ненужных файлов.- Git hooks автоматизируют проверки и процессы.
- Aliases упрощают часто используемые команды.
- Настройка политики слияний и ревью способствует лучшему качеству кода и стабильной работе команды.