Перейти к содержанию

Шпаргалка по командам Git

Система управления версиями (от англ. Version Control System, VCS) — программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.

Настройка

Перед началом работы нужно выполнить некоторые настройки.

Указать свое имя, которое будет использоваться в качестве автора коммита

git config --global user.name "Name Surname"

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

git config --global user.email "your@email.com"

Если вы в Windows, включить преобразование окончаний строк из CRLF в LF

git config --global core.autocrlf true

Создание репозиториев

Инициализировать новый репозиторий Git

git init

Клонировать существующий репозиторий

git clone <repository>
Если нужен не дефолтный бранч

git clone —branch (или -b) branch_name <repository>

Внесение изменений

Проверить состояние вашего репозитория

git status

Добавить файл в тестовую область

git add <file>

Добавить все измененные и новые файлы в тестовую область

git add .

Зафиксировать изменения с комментарием

git commit -m "message"

Удалить файл из промежуточной области

git reset HEAD <file>

Просмотр истории

Просмотр истории коммитов

git log

Просмотр изменений, которые не были подготовлены

git diff

Просмотр внесенных изменений

git diff --staged

Работа с удаленными репозиториями

Добавить удаленный репозиторий

git remote add <name> <url>

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

git push <name> <branch>

Извлечь изменения из удаленного репозитория

git pull <name> <branch>

Ветвление

Список всех веток

git branch

Создать новую ветку

git branch <name>

Создать новую ветку и перейти на неё

git checkout -b <new_branch>

Отправить наш новую ветку на сервер

git push —set-upstream origin <new_branch>

Удалить ветку

git branch -d <name>

Перейти на ветку

git checkout <name>

Объединение

Объединить ветку с текущей веткой ( имя ветки из которой пишем)

git merge <branch>

Работа с отложенными изменениями

Отложенные изменения

git stash

Просмотр списка отложенных изменений

git stash list

Применить последнее отложенное изменение

git stash apply

Отменить последнее отложенное изменение

git stash drop

Маркировка

Создать новый тег

git tag <tagname>

Создать новый тег с сообщением

git tag -a <tagname> -m "message"

Удалить тег

git tag -d <tagname>
git push origin :refs/tags/<tagname>

Отправка тегов в удаленный репозиторий

git push --tags

Откат изменений

Вернуть последний коммит

git revert HEAD

Вернуть состояние на 4 дейстия назад

git revert HEAD~3

Отменить конкретный коммит

git revert <commit>

Сброс

Сбросить промежуточную область до последнего коммита

git reset HEAD

Сбросить промежуточную область и рабочий каталог до последнего коммита

git reset --hard HEAD

Сбросить промежуточную область и рабочий каталог до определенного коммита

git reset --hard <commit>

Псевдонимы

Создание псевдонимов для часто используемых команд

git config --global alias.<alias_name> <git_command>
  • echo "# название" >> README.md - создание файла README.md
  • git init - инициализация репозитория
  • git add README.md - добавления файла README.md в проект
  • git commit -m "first commit" - получает проиндексированный снимок состояния и выполняет его коммит в историю проекта
  • git remote add origin https://github.com/stanruss/название.git - команда, которой устанавливается подключение к удаленному серверу и git репозиторию, размещающемуся на нем.
  • git push -u origin master - кзменения отправляются на удаленный сервер

  • git log --oneline - посмотреть все коммиты.

  • git checkout . - восстановить все.
  • git checkout "код коммита" - вернуть до состояния этого коммита.
  • git checkout master - вернуться в ветку мастер.

Восстановить файлы на локальном компьютере:

  • git fetch --all
  • git reset --hard origin/master или git reset --hard origin/<название_ветки>

  • git add text.txt - Добавить файл в репозиторий

  • git rm text.txt - Удалить файл
  • git status - Текущее состояние репозитория (изменения, неразрешенные конфликты и тп)
  • git commit -a -m "Commit description" - Сделать коммит
  • git push origin - Замерджить все ветки локального репозитория на удаленный репозиторий
  • git push origin master - Аналогично предыдущему, но делается пуш только ветки master
  • git push origin HEAD - Запушить текущую ветку, не вводя целиком ее название
  • git pull origin- Замерджить все ветки с удаленного репозитория
  • git pull origin master - Аналогично предыдущему, но накатывается только ветка master
  • git pull origin HEAD- Накатить текущую ветку, не вводя ее длинное имя
  • git fetch origin- Скачать все ветки с origin, но не мерджить их в локальный репозиторий
  • git fetch origin master - Аналогично предыдущему, но только для одной заданной ветки
  • git checkout -b some_branch origin/some_branch- Начать работать с веткой some_branch (уже существующей)
  • git branch some_branch - Создать новый бранч (ответвится от текущего)
  • git checkout some_branch - Переключиться на другую ветку (из тех, с которыми уже работаем)
  • git branch # звездочкой отмечена текущая ветвь- Получаем список веток, с которыми работаем
  • git branch -a # | grep something - Просмотреть все существующие ветви
  • git merge some_branch - Замерджить some_branch в текущую ветку
  • git branch -d some_branch- Удалить бранч (после мерджа)
  • git branch -D some_branch - Просто удалить бранч (тупиковая ветвь)
  • git show d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4- Изменения, сделанные в заданном коммите
  • git push origin :branch-name- Удалить бранч из репозитория на сервере
  • git reset --hard d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4- Откатиться к конкретному коммиту и удалить последующие (хэш смотрим в «git log»)
  • git push -f- залить на сервер измененные коммиты
  • git clean -f- Удаление untracked files