Основные команды Git

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

Инициализация git в директории
git init
Посмотреть изменения
git status
Добавить все файлы в индекс
git add .
Добавить нужные файлы в индекс
git add [файлы через пробел]
Сделать коммит
git commit -m "текст_коммита"
Сделать коммит с указанием имени и почты автора
git commit -m "текст_коммита" --author="Mihail <example@mail.ru>"
Посмотреть список веток
git branch
Создать ветку
git branch [название_ветки]
Перейти в ветку
git checkout [название_ветки]
Создать и перейти в ветку
git checkout -b [название_ветки]
Удалить ветку
git branch -d [название_ветки]
Удалить ветку полностью
git branch -D [название_ветки]
Запушить изменения
git push origin [название ветки]
Забрать изменения из ветки
git pull origin [название ветки]
Влить изменения нужной ветки в текущую
git merge [название ветки]
Переименовать ветку
Сперва необходимо зайти в нее
git branch -m [новое_имя]
Посмотреть изменения
Показывает ваши изменения относительно текущего коммита + stage (важное уточнение). В diff не попадают новые файлы
git diff
Посмотреть изменения находящиеся в stage
Cюда новые файлы попадают
git diff --cached
Отменить изменения в файле
git checkout [файл]
Добавить в директорию удаленный репозиторий
git remote add origin [url]
Посмотреть список всех коммитов
git log
Посмотреть последние 3 коммита
git log -3
Откатить проект до определенной точки
Cодержимое вашего индекса, а также рабочей директории, остается неизменным. Это значит, что если мы откатимся назад на пару коммитов, мы изменим ссылку указателя HEAD на указанный коммит и все изменения, которые были до этого внесены, окажутся в индексе.
git reset --soft <commit>
Откатить проект до определенной точки
Предыдущие изменения в индекс не попадут, а будут отслеживаться как не занесенные в индекс. Это дает возможность внести в индекс только те изменения, которые нам необходимы, что довольно удобно!
git reset --mixed <commit>
Откатить проект до определенной точки
Предыдущие изменения не попадут ни в индекс, ни в зону отслеживаемых файлов. Это значит, что мы полностью сотрем все изменения, которые вносили ранее. Это также удобно, если вы знаете, что вам больше не пригодится ваша предыдущая работа над проектом.
git reset --hard <commit>
Сохранить (отложить) временные изменения
git stash save
Сохранить (отложить) временные изменения с 'названием'
git stash save "Bug Fix: Main page"
Сохранить (отложить) временные изменения которые не отслеживаются
Ещё может так случиться, что мы добавили новые файлы, которых изначально в проекте не было, — следовательно, их нам тоже нужно будет спрятать. Делается это всё той же командой git stash save, но с добавлением параметра --include-untracked, или -u:
git stash save -u
Посмотреть список всех отложенных файлов
Команда выводит список всех сохранений и их описания, которые задаются в кавычках после команды git stash save. Мы также видим, что у нас есть непонятное сохранение «WIP on main: 4532d67 our new homepage». Оно получило такое название по дефолту — просто потому, что мы не задали ему название в кавычках.
git stash list
Посмотреть содержимое отложенных файлов
git stash show
Посмотреть содержимое отложенных файлов конкретного стеша
git stash show stash stash@{1}
Применить из стеша
git stash apply
Применить нужное изменение из стеша
git stash apply stash@{1}
Применить и удалить из стеша
После вызова команды git stash apply изменения всё ещё остаются в локальном архиве. Чтобы достать сохранение и полностью удалить его из хранилища, используем команду git stash pop:
git stash pop
Переименовать последный коммит
Переименовать последный коммит, без необходимости добавлять файлы в коммит. Просто укажите новое название.
git commit --amend -m "Новое название"
Очистить стеш
git stash clear