- PVSM.RU - https://www.pvsm.ru -

10 Git-команд, которые стоит знать разработчику

10 Git-команд, которые стоит знать разработчику - 1

В этой статье мы обсудим разные Git-команды, которые могут оказаться полезными для разработчика или специалиста по Big Data. Вы узнаете, как проверять, удалять и приводить код в порядок. А еще рассмотрим способы выхода из Vim и экономию времени с помощью псевдонимов Bash и конфигурации редактора Git.

Skillbox рекомендует: Практический курс «Мобильный разработчик PRO» [1].

Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».

Проверяем все и вся

10 Git-команд, которые стоит знать разработчику - 2

  • git diff [2]— Посмотреть все изменения файла локально. При указании имени файла изменения будут показаны только для него.
  • git log [3] —  Просмотреть историю коммита. Может также использоваться для файла с git log -p my_file. Введите q, чтобы выйти.
  • git blame my_file [4] — Просмотреть, кто, что и когда изменил в my_file.
  • git reflog [5] —  Показать журнал изменений в заголовке локального репозитория. Отличный вариант для поиска утраченных данных.

Эти команды позволяют быстро проверить все, что нужно, без всяких проблем. Если что-то не так, Git дает большое количество возможностей для удаления или отката коммитов и изменений в файлах.

Вернуть, как было

  • git reset, git checkout и git revert — команды, которые используются, чтобы отменить какие-либо действия. Но они не такие и простые, с ними надо уметь обращаться.
  • git reset, git checkout могут использоваться как для коммитов, так и для обычных файлов.
  • git revert используется только для работы с коммитами.

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

Если вы работаете в коллективе и коммиты общие, тогда ваш выбор — git revert.

10 Git-команд, которые стоит знать разработчику - 3

У каждой команды есть целый набор опций. Вот наиболее употребляемые:
git reset --hard HEAD [6] — отмена проиндексированных и непроиндексированных изменений с момента последнего коммита.

Указываем вместо HEAD определенный коммит, чтобы отменить изменения, произошедшие после него. --hard отбрасываются оба типа изменений, о которых говорилось выше.

Не забывайте убедиться в том, что вы не отменяете коммит из удаленной ветки, от которой зависят другие члены команды.

git checkout my_commit [7] — отмена изменений my_commit.

HEAD часто используется для my_commit, чтобы отменить изменения в вашем локальном рабочем каталоге с момента последней фиксации.

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

Если вы используете checkout с веткой вместо коммита, HEAD переключается на указанную ветвь, а рабочий каталог обновляется для соответствия изменениям. Это самое распространенное использование этой команды.

git revert my_commit [8] — отмена последствий изменений в my_commit. revert выполняет новый коммит после отмены изменений.

revert безопасен для общих проектов, поскольку команда не перезаписывает изменения, от которых могут зависеть другие ветки.

10 Git-команд, которые стоит знать разработчику - 4

Иногда вы просто хотите удалить неотслеживаемые файлы в вашем локальном каталоге. К примеру, запустив какой-то код, который создал много разных типов файлов, которые вам не нужны. К сожалению. Clean поможет мгновенно удалить их!

git clean -n [9] — удаление неотслеживаемых файлов в локальной рабочей директории.

-n — флаг для пробного запуска, ничего не удаляется.
-f — флаг для удаления файлов.
-в — флаг для удаления неотслеживаемых директорий.

По умолчанию неотслеживаемые файлы .gitignore не будут удалены, но это можно изменить.

10 Git-команд, которые стоит знать разработчику - 5

Наводим порядки

git commit --amend [10] — добавляем поэтапные изменения в последний коммит.

Если ничего не проиндексировано, команда позволяет вам редактировать последнее сообщение коммита. Используйте команду только в том случае, если коммит не был объединен с удаленной master-веткой.

git push my_remote --tags [11] — отправка локальных тэгов в удаленный репозиторий. Хороший вариант для присвоения версий изменениям.

Помогите, я застрял в Vim и не могу выбраться!

Git в некоторых случаях открывает сессию редактора Vim. И если вы не слишком хорошо знакомы с ним, то можете оказаться в затруднительной ситуации. Да и не только вы — к примеру, на Stack Overflow более 4 тысяч пользователей хотят знать, как выбраться из Vim.

10 Git-команд, которые стоит знать разработчику - 6

Вот четырехэтапный план, который поможет закрыть Vim и сохранить изменения:

  • Нажимаем i.
  • Вводим сообщение коммита в первой строке.
  • Esc.
  • Вводим :x.

Все, вы свободны!

Изменяем редактор по умолчанию.

Вы можете избавиться от Vim совсем, если смените редактор по умолчанию. Вот команды [12] для работы с популярными редакторами. Пример выбора другого редактора, в нашем случае Atom:

git config --global core.editor «atom --wait»

Ярлыки для команд Git

А вот способ, который позволяет добавлять ярлыки для Git-команд, для вашего .bash_profile.

alias gs='git status '
alias ga='git add '
alias gaa='git add -A '
alias gb='git branch '
alias gc='git commit '
alias gcm='git commit -m '
alias go='git checkout '

Больше информации о .bash_profile можно получить здесь [13].

Что касается способа, приведенного выше, то теперь вы можете использовать gs вместо git status.

Собственно, это все на сегодня. Если есть возможность, укажите в комментариях, какие Git-команды используете вы и почему.

Skillbox рекомендует:

Автор: fokus-lop

Источник [17]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/310274

Ссылки в тексте:

[1] «Мобильный разработчик PRO»: https://skillbox.ru/agima/?utm_source=skillbox.media&utm_medium=habr.com&utm_campaign=AGIMA&utm_content=articles&utm_term=gitcommands

[2] git diff: https://www.atlassian.com/git/tutorials/saving-changes/git-diff

[3] git log: https://www.atlassian.com/git/tutorials/git-log

[4] git blame my_file: https://www.atlassian.com/git/tutorials/inspecting-a-repository/git-blame

[5] git reflog: https://www.atlassian.com/git/tutorials/rewriting-history/git-reflog

[6] git reset --hard HEAD: https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting

[7] git checkout my_commit: https://www.atlassian.com/git/tutorials/undoing-changes

[8] git revert my_commit: https://www.atlassian.com/git/tutorials/undoing-changes/git-revert

[9] git clean -n: https://www.atlassian.com/git/tutorials/undoing-changes/git-clean

[10] git commit --amend: https://www.atlassian.com/git/tutorials/rewriting-history#git-commit--amend

[11] git push my_remote --tags: https://www.atlassian.com/git/tutorials/syncing/git-push

[12] команды: https://www.atlassian.com/git/tutorials/setting-up-a-repository/git-config

[13] здесь: https://stackoverflow.com/a/30462883/4590385

[14] «Я — веб-разработчик PRO»: https://iamwebdev.skillbox.ru/?utm_source=skillbox.media&utm_medium=habr.com&utm_campaign=WEBDEVPRO&utm_content=articles&utm_term=gitcommands

[15] «С#-разработчик с 0»: https://skillbox.ru/c-sharp/?utm_source=skillbox.media&utm_medium=habr.com&utm_campaign=CSHDEV&utm_content=articles&utm_term=gitcommands

[16] «PHP-разработчик с 0 до PRO»: https://skillbox.ru/php/?utm_source=skillbox.media&utm_medium=habr.com&utm_campaign=PHPDEV&utm_content=articles&utm_term=gitcommands

[17] Источник: https://habr.com/ru/post/442260/?utm_campaign=442260