Шпаргалка по командам 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.mdgit 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
- Аналогично предыдущему, но делается пуш только ветки mastergit push origin HEAD
- Запушить текущую ветку, не вводя целиком ее названиеgit pull origin
- Замерджить все ветки с удаленного репозиторияgit pull origin master
- Аналогично предыдущему, но накатывается только ветка mastergit 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