Перейти к основному содержимому

Шпаргалка по Git

Первоначальная настройка

Задаём имя и почту

$ git config --global user.name "Ivan Ivanov"
$ git config --global user.email ivan.ivanov@email.com

Переименовываем главную ветку с master на main

$ git config --global init.defaultBranch main

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

git init - Создание репозитория в текущей папке

git add -A - Добавить (обновить) все файлы в буферную зону

git reset - Сброс буферной зоны

git add filename - Добавить (обновить) файл в буферной зоне

git commit -a -m"комментарий" - Сохранить все добавленные измененые файлы в репозиторий

git push - Отправка коммита в удалённый репозиторий

git pull - Приём коммита с удалённого репозитория

git status - Посмотреть статус файлов

git branch name_branch - Создать новую ветку

git checkout -b name_branch - Создать новую ветку и перейти в неё

git checkout name_branch - Переключиться на другую ветку

git branch -D name_branch - Удаление локальной ветки

git push origin --delete name_branch - Удаление удаленной ветки

git config --list --show-origin - Выводит список всех настроек и показывает где именно они заданы

Работа с тегами

git tag v1 - Создание тега

git checkout v1 - Переключение по имени тегами

git tag - Вывести список тегов

Удаление коммитов

Команда git reset перемещает указатель HEAD на выбранное количество коммитов назад в локальном репозитории.

У неё есть три режима работы:

git reset --soft commit_hash - изменения остаются в разделе проиндексированных файлов и рабочем каталоге.

git reset --mixed commit_hash - изменения остаются только в рабочем каталоге.

git reset --hard commit_hash - полностью удаляет все изменения.

подсказка

Флаг --mixed стоит по умолчанию. Команду можно сократить до git reset commit_hash

подсказка

Для удаления последнего коммита вместо хэша можно указать первого родителя коммита git reset HEAD~

Если коммиты для удаления уже отправлены в удалённый репозиторий, то можно переписать историю коммитов с помощью команды git push --force origin main. Тем самым перезаписав удаленную ветку main на локальную версию ветки main.

осторожно

Крайне не рекомендуется переписывать историю в удаленном репозитории для предотвращения потери данных и конфликтов в работе других разработчиков.