5 приемов работы с Git, которые должен знать каждый разработчик

Перевод статьи «5 Git Tricks Every Developer Should Know».

Система контроля версий играет важную роль в разработке программ и повседневной жизни разработчика. В этой статье мы разберем 5 приемов работы с Git, которые помогут вам повысить продуктивность, улучшить рабочий процесс и вообще стать git-ниндзя.

1. Как удалить все локальные ветки git, сохранив master

Разработчику часто приходится заниматься несколькими фичами, и для каждой требуется создание отдельной ветки. На каком-то этапе начинаешь теряться во множестве зря болтающихся локальных веток. У меня эта проблема возникает постоянно. Допустим, вы хотите избавиться от всех веток, за исключением master/main.

В этом вам поможет следующая команда:

git branch | grep -v “master” | xargs git branch -D

Примечание редакции Techrocks. В комментариях к оригинальной статье есть поправка:

«Эта команда удалит все ветки, которые не были смержены, что потенциально опасно. Лучше использовать опцию -d , а не -D. Если после этого останется пара неудаленных веток, их можно будет удалить по одной, когда удостоверитесь, что они вам точно больше не нужны».

2. Как отменить последний локальный коммит в Git?

Это один из наиболее часто задаваемых вопросов на Stack Overflow. Допустим, я закоммитил что-то по ошибке и теперь хочу это отменить. Вот для примера «ошибочный» коммит, который я сделал недавно и теперь хочу откатить назад.

git commit -m “Это была ошибка”

Любой предыдущий коммит можно сбросить, запустив команду git reset -- hard, но это перезапишет мои локальные изменения (т. е. изменения, которые я сделал в локальных файлах). Есть лучший способ.

Самый последний коммит можно отменить, не затрагивая рабочее дерево (файлы на диске):

git reset HEAD~

После этого мы можем запустить git add и git commit, как делаем это обычно.

git add .
git commit -m «сообщение»

3. Лучшая визуализация лога в терминале

Вам наверняка случалось использовать команду git log. Она выводит всю историю контроля версий в вашем терминале.

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

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

Теперь вывод будет таким:

Как видите, этот вывод более информативен. Можно также просмотреть патч для каждого коммита, добавив к предыдущей команде флаг -p.

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit -p

4. Как удалить ветку git локально и из удаленного репозитория?

Для удаления локальной ветки можно запустить следующую команду:

git branch -d <имя-вашей-ветки>

Если хотите удалить ветку без проверки статуса мержа, используйте опцию -D (шорткат для --delete --force).

Для удаления ветки из remote-репозитория запустите следующую команду:

git push origin --delete <имя-ветки-в-удаленном-репозитории>

5. Применение изменений из другого репозитория

Допустим, нам нужно применить некоторые изменения из другого репозитория. Это можно сделать при помощи команд git fetch и git cherry-pick:

git fetch <url-удаленного-git-репозитория> <ветка> && git cherry-pick SHA1

Надеюсь, эти приемы вам пригодятся!

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх