10 Git-команд

Linux > 10 Git-команд
05.03.2019 23:01:18



Статья:

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


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

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

 

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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