Добавить в корзинуПозвонить
Найти в Дзене
Герман Геншин

5 волшебных команд Git, которые перевернут вашу работу с кодом — вы будете использовать их каждый день!

Git — это настоящая сокровищница возможностей, и освоить их все почти нереально. Most команды — повседневные, для фиксации изменений или переключения веток. Но есть и настоящие «секретные трюки»: редкие команды, которые невероятно облегчают жизнь. Честно говоря, git blame заслуживает более позитивного названия — например, git credit. Как бы он ни назывался, с помощью этой команды легко выяснить, кто именно изменял конкретную строку файла: В результате вы увидите напротив каждой строки файла: коммит, дату изменения и имя того, кто внёс поправки. Если в проекте много участников, git blame позволяет быстро понять, кто редактировал нужные строки — чтобы спросить, уточнить детали или согласовать изменения. Похожая команда — git-who: она суммирует данные по всем авторам в проекте. Такой же инструмент есть и на GitHub: открываете любой файл, выбираете сбоку вкладку «Blame» — и видите всю историю изменений построчно: GitHub к тому же выделяет строки по цвету — так легко заметить свежие правки
Оглавление

Git — это настоящая сокровищница возможностей, и освоить их все почти нереально. Most команды — повседневные, для фиксации изменений или переключения веток. Но есть и настоящие «секретные трюки»: редкие команды, которые невероятно облегчают жизнь.

git blame: мгновенно узнайте, кто и когда правил код

Честно говоря, git blame заслуживает более позитивного названия — например, git credit. Как бы он ни назывался, с помощью этой команды легко выяснить, кто именно изменял конкретную строку файла:

-2

В результате вы увидите напротив каждой строки файла: коммит, дату изменения и имя того, кто внёс поправки.

Если в проекте много участников, git blame позволяет быстро понять, кто редактировал нужные строки — чтобы спросить, уточнить детали или согласовать изменения.

Похожая команда — git-who: она суммирует данные по всем авторам в проекте.

Такой же инструмент есть и на GitHub: открываете любой файл, выбираете сбоку вкладку «Blame» — и видите всю историю изменений построчно:

-3

GitHub к тому же выделяет строки по цвету — так легко заметить свежие правки.

git archive: получи архив проекта на любой момент истории!

Обычно мы работаем с Git, клонируя репозитории, создавая ветки и делая коммиты. Но бывает, что нужны только файлы — чтобы показать проект, протестировать код или поделиться им.

Вот тут выручает git archive. Она «запакует» чистую копию всех файлов без git-метаданных из любого коммита:

На выходе будет архив всех файлов текущей ветки в виде tar. Сохранить результат можно двумя способами: через перенаправление вывода в файл или указав параметр --output — тогда архив сразу попадет туда, куда нужно:

Git сам определит формат архива по расширению: по умолчанию будет tar, но можно добавить .tar.gz или zip, если потребуется.

Главное — сразу указывать момент времени: HEAD, нужный тег или коммит. Можно архивировать только отдельную папку из проекта, если добавить её путь.

Вроде бы простая команда, а на деле — позволяет за пару секунд получить «снимок» любого состояния вашего проекта!

git stash: спрячь свои незавершённые правки в один момент

Каждый с этим сталкивался: вносим изменения в одном месте, и вдруг нужно срочно заняться чем-то другим. Всё сохранено, но если переключиться на другую ветку — изменения пропадут.

Честно, раньше я спешил коммитить полуготовые правки (а потом мучился с «мусорной» историей). Теперь спасает git stash:

-4

После git stash рабочее дерево очищается: можно спокойно переключаться между ветками, а свои файлы вернуть обратно позднее — одной командой.

Ваши изменения возвращаются, будто и не пропадали. Главное в stash — принцип стека: если сделали несколько «сохранений», вернуть можно только в обратном порядке. Очень удобно!

git grep: ищи код по всему проекту за секунды!

git grep находит нужный текст по всем отслеживаемым файлам в проекте. На первый взгляд — просто аналог grep, но вся фишка в тесной связке с Git.

git grep смотрит только на ваши версии в репозитории — не трогая временные или лишние файлы. Классический grep ищет где угодно, а git grep — только там, где реально хранится история изменений.

По умолчанию поиск идет по текущей рабочей ветке, но можно искать и по другим веткам, и по любому коммиту.

Без git grep пришлось бы прыгать между ветками или мучиться с кучей лишних файлов. С ним вы легко исследуете всю историю проекта — правда, будьте готовы к огромному количеству результатов!

git worktree: работай над разными ветками одновременно (и никакой путаницы!)

git stash спасает на короткой дистанции, когда нужно временно отложить работу. Но если пытаетесь вести несколько веток параллельно — git worktree откроет совершенно новый стиль работы.

Эта функция создаёт дополнительную папку для работы с отдельной веткой — то есть у вас сразу несколько независимых копий файлов одного репозитория.

Всё просто: наберите команду worktree — и получите новую папку, связанную с выбранной веткой. Папку можно назвать по имени ветки, существующей или новой:

-5

В списке такие папки видны синим цветом и значком плюса:

-6

Можно спокойно и параллельно работать в каждой папке — в каждой своя ветка, забыв о надоедливых сменах или стопках неоконченных изменений. Идеально для всех, кто любит настоящую многозадачность!

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в: