Git шпаргалка


ssh-keygen # генерация ключа, открытую часть ~/.ssh/id_rsa.pub передать на github, bitbucket и т.д.

# настройка имени пользователя и электронной почты
git config --global user.name "Денис Богданов"
git config --global user.email denx-b@mail.ru

# окончание строк Unix/Mac:
git config --global core.autocrlf input
git config --global core.safecrlf true
# окончание строк Windows:
git config --global core.autocrlf true
git config --global core.safecrlf true

# редактор по умолчанию 
# https://help.github.com/articles/associating-text-editors-with-git/
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

git init # инициализация репозитория
git add . # добавить файлы в индекс
git commit -a -m # сделать коммит с добавлением файлов в индекс
git status # статус
git diff # просмотр изменений, --staged для индексированных файлов

git branch # список веток. -r показать удалённые ветки
git branch NAME # создать ветку
git checkout NAME # переход к ветке NAME
git checkout -b NAME # создать ветку и сразу перейти к ней
git branch -D master # удалить локальную ветку
git push origin --delete  # удалить ветку  с удалённого репозитория
git push origin :master # удалить ветку  с удалённого репозитория

git remote # просмотр удалённых репозиториев
git remote -v # просмотр удалённых репозиториев в адресами
git remote add origin URL # добавление удалённого репозитория
git remote rename   # переименовать из  в 
git clone URL # клонировать репозиторий себе
git fetch origin NAME # забрать ветку NAME с origin и поместить в одноимённую локально
git pull origin master # забрать себе изменения с сервера 
git pull -X theirs origin master # в случае конфликта принять все изменения с репозитория
git checkout origin/branch-name -b branch-name. # забрать себе на компьютер ветку с удалённого репозитория
git push origin master # залить изменения на сервер
git remote rm # удалить привязку к серверу

git log # вывод лога
git log --oneline # вывод лога сокращённо с короткими хешами
git log --pretty=oneline # вывод лога сокращённо с полными хешами
git log --pretty=format:"%h - %an, %ar : %s" # форматированный вывод лога
git show HASH # просмотр изменений в коммите по хешу

git reset # отменить изменения из индекса
git reset --hard HEAD # безвозвратно удаляет не зафиксированные текущие изменения из локального репозитория
git reset --soft HEAD~  # отменить последний коммит
git commit --amend -m # редактировать комментарий последнего коммита
git checkout # отмена изменений до состояния последнего коммита 
git checkout HASH # возврат до коммита HASH с созданием одноимённой ветки
git checkout HASH FILENAME # возврат до коммита HASH только указанного файла
git checkout HEAD -- my-file.txt # отмена изменений в одном файле до последнего коммита
git reset head FILE # исключить файл из индекса
git rm --cached *.min.* # остановить отслеживание файлов по маске или имени файла
git reset --hard HASH # откатиться до коммита HASH
git push origin +master или git push -f origin master # отправить изменения на удалённый репозиторий не смотря ни на что

git clean -f -d # чтобы удалить всё лишнее

# кириллица в cmder
# Settings > Startup > Environment
set LC_ALL=ru_RU.UTF-8
set LANG=ru_RU.UTF-8

Как оформлять коммиты
https://habrahabr.ru/company/Voximplant/blog/276695/

Интерактивный тур:
https://githowto.com/ru

Базовые операции, статья:
http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/ru/ch02.html

Книга Pro Git
https://git-scm.com/book/ru/v1/

Что про это скажет википедия:
https://ru.wikipedia.org/wiki/Git

Теги: git, шпаргалка