Команды Git, которые стоит начать использовать уже сегодня
В новых версиях Git появились команды, которые делают работу с Git более удобной и безопасной. Посмотрим наиболее полезные:
--word-diff для команды git diff
Проблема
Иногда необходимо увидеть различия между ветками, например, между вашей локальной веткой и веткой origin/master.
Для этого можно использовать команду:
git diff origin <branch name>
Однако стандартный вывод команды git diff отображает изменения в виде блоков кода, что может быть трудно воспринимать, особенно при больших изменениях.
Решение
Использование флага --word-diff с командой git diff позволяет увидеть различия на уровне слов, что делает просмотр изменений более наглядным и читаемым.
Пример использования:
git diff origin/main --word-diff
git switch — безопасная смена веток
Проблема
Ранее для смены веток использовалась команда git checkout, которая выполняла множество функций: переключала ветки, восстанавливала файлы, создавала новые ветки. Это могло привести к путанице и ошибкам.
Решение
С появлением Git 2.23 задачи разделены. Команда git switch отвечает исключительно за работу с ветками:
# Переключение на существующую ветку
git switch feature-branch
# Создание и переключение на новую ветку
git switch -c new-branch
Теперь можно безопасно переключаться между ветками без риска случайных изменений.
git restore — безопасное откатывание изменений
Проблема
До появления Git 2.23 для отмены изменений чаще всего использовали команду git reset.
Однако она могла повлиять не только на рабочий каталог, но и на индекс, а в некоторых случаях даже изменить историю коммитов. Это создавало риски случайных ошибок.
Решение
С выходом Git 2.23 появилась команда git restore, которая делает процесс отката изменений проще и безопаснее.
# Отменить изменения в рабочей директории
git restore main.js
# Убрать изменения из индекса
git restore --staged main.js
# Восстановить файл из предыдущего коммита
git restore --source=HEAD~1 file.txt
Команда позволяет работать только с файлами, не затрагивая управление ветками.
git maintenance — автоматическое обслуживание репозитория
Проблема
С течением времени большие репозитории могут начать работать медленнее. Ранее для поддержания производительности необходимо было вручную запускать такие команды, как git gc или git repack.
Решение
С выходом Git 2.29 появилась команда git maintenance, которая автоматизирует процессы обслуживания репозитория:
# Включить автоматическое обслуживание
git maintenance start
# Выполнить обслуживание вручную
git maintenance run
Что она делает:
- Сбор мусора: удаляет недоступные объекты, такие как удалённые коммиты.
- Упаковка: оптимизирует хранение данных, объединяя файлы пакетов.
- Обновление графа коммитов: ускоряет команды вроде
git logиgit blame.
Более безопасный force push
Проблема
Использование команды git push с флагом --force (или -f) перезаписывает историю и может привести к потере чужих изменений.
Решение
Флаг --force-with-lease проверяет, были ли изменения на сервере с момента вашего последнего пуша, и предотвращает случайное перезаписывание чужих коммитов:
git push --force-with-lease
Просмотр веток или логов с использованием git column
Проблема
Стандартный вывод git branch или git log в виде длинного списка неудобен для быстрого поиска информации.
Решение
Команда git column выводит информацию в виде столбцов, улучшая читаемость:
git branch | git column --mode=column --padding=2
Теперь информация о ветках отображается компактно и удобно для просмотра.