# Git конфигурация Как настроить Git алиасы и конфигурацию. ## Где Git конфиг? Git конфигурация находится в: ``` home/ada/git.nix ``` ## Пользователь ```nix programs.git = { enable = true; userName = "Dmitry"; userEmail = "ada.dmitry@gmail.com"; ``` Изменить имя и email: ```nix userName = "Твоё имя"; userEmail = "твой@email.com"; ``` ## Добавить alias Алиасы находятся в `aliases`: ```nix aliases = { # Базовые st = "status"; co = "checkout"; br = "branch"; # Твой новый alias: quick-commit = "commit -am"; }; ``` ### Примеры полезных алиасов ```nix # Быстрая работа с коммитами cm = "commit -m"; amend = "commit --amend"; undo = "reset --soft HEAD^"; # Логи lg = "log --graph --oneline --all"; recent = "log -10 --oneline"; # Ветки new-branch = "checkout -b"; sync = "pull --rebase"; # Простые проверки changed = "diff --name-only"; staged = "diff --cached"; ``` ## Глобальный gitignore Файлы которые всегда игнорируются: ```nix ignores = [ ".DS_Store" # macOS "Thumbs.db" # Windows ".vscode/" # VS Code ".idea/" # IntelliJ "*.swp" # Vim # Добавить свой: ".myfile" ]; ``` ## Цвета Визуальная конфигурация разных элементов: ```nix "color \"branch\"" = { current = "yellow bold"; local = "green"; remote = "cyan"; }; "color \"diff\"" = { meta = "yellow"; old = "red bold"; new = "green bold"; }; ``` Можешь изменять цвета на свой вкус. ## Основные настройки ```nix extraConfig = { # Ветка по умолчанию init.defaultBranch = "main"; # Автоматический rebase при pull pull.rebase = true; # Редактор для коммитов core.editor = "micro"; }; ``` ## Проверка конфигурации После изменений собери конфигурацию: ```bash nh os switch ``` Проверить что применилось: ```bash git config --list | grep user git config user.name git alias # Если есть такой alias ``` ## Использование алиасов ```bash # Вместо: git status # Используешь: g st # Если есть alias g = git ``` ## Работа с удалёнными репозиториями Если нужны специальные алиасы для pull/push: ```nix # В алиасах: pom = "push origin main"; plm = "pull origin main"; ``` ## Слияние веток ```nix # Алиасы для слияния merge-main = "merge main"; merge-dev = "merge develop"; ``` ## Интерактивные операции Хорошие алиасы для интерактивной работы: ```nix interactive = "rebase -i"; fixup = "rebase -i --autosquash"; ``` ## Проверка перед применением ```bash # Посмотреть текущие алиасы git config --get-regexp alias # Проверить синтаксис после редактирования nix flake check ``` ## Git UI Если хочешь использовать интерактивный Git UI: ```bash lazygit # Уже установлен в пакетах ``` ## Частые операции ### Быстрый коммит ```nix # Добавить алиас quick = "commit -am"; ``` ```bash git quick "commit message" ``` ### История файла ```nix # Алиас history = "log --oneline"; ``` ```bash git history ``` ### Визуальное дерево ```bash # Уже есть git lg # или git l ``` ## Если что-то сломалось Вернуть конфиг по умолчанию: ```bash # Отменить последние изменения git checkout home/ada/git.nix # Пересобрать nh os switch ```