====== Git ======
==== Вызов справки ====
git help
git help
==== Список игнорируемых файлов в git ====
Создать файл .gitignore в каталоге проекта и перечислить файлы, каталоги ключевыми фразами
[[https://www.toptal.com/developers/gitignore|Онлайн сервис для .gitignore]]
===== Глобальные настройки Git =====
==== Информация о разработчике ====
git config --global user.name "Your Name"
git config --global user.email "Your e-mail"
==== Редактор для Git по умолчанию ====
git config --global core.editor ""
===== Управление Git =====
==== Создать Git директорию в каталоге проекта ====
git init
==== Просмотреть статус проекта ====
git status
==== Указать что файл исполняемый (Для Linux систем из Windows) ====
Если файл индексируется
git update-index --chmod=+x
Если добавляем файл первый раз
git add --chmod=+x
==== Просмотр информации о состоянии ====
git show
Просмотр кратко
git show --quiet
Просмотр предыдущих Commit
git show HEAD~
git show HEAD~~~
git show HEAD~3
==== Просмотреть историю Commit ====
git log
git log
Просмотр списком
git log --oneline
git log --oneline
==== Просмотр истории перемещений по веткам ====
git reflog
git reflog
git reflog --date=iso
cat ./git/logs/
===== GIT ADD =====
==== Добавить файл в индексацию ====
Если файл удален, убрать его из индексации аналогичным способом
git add
==== Добавить все файлы из текущего каталога ====
git add .
==== Добавить все изменения ====
git add -A
==== Отменить добавление ====
git reset HEAD
==== Добавить изменения в файле выборочно ====
git add -p
===== GIT COMMIT =====
==== Создать Commit ====
Фиксация проекта в репозитории Git
git commit -m "Message"
Указать автора (стороннего) commit
git commit -m "Message" --author="Autor Name "
==== Сделать commit с комментарием от предыдущего commit ====
git commit -C ORIG_HEAD
Откроет редактор для правки комментария
git commit -c ORIG_HEAD
==== Внесение исправлений в commit ====
git commit --amend
===== GIT ADD + COMMIT =====
==== Добавить все изменения в Commit ====
Способ подходит для небольших изменений (кроме не отслеживаемых файлов Git-ом)
git commit -am "Message"
==== Добавить файлы выборочно в Commit ====
git commit -m "Message"
===== GIT RM =====
==== Удалить файл/каталог из проекта и GIT ====
git rm
git rm -r
Удалить игнорируя предупреждения
git rm -f
git rm -r -f
==== Удалить файл/каталог из индексации, но оставить в проекте ====
git rm --cached
git rm -r --cached
===== GIT MV =====
==== Переименование файла ====
git mv
===== GIT BRANCH =====
==== Просмотр текущей ветки ====
git branch
Просмотр ветки с информацией о Commit
git branch -v
==== Создать новую ветку ====
git branch
Создать и переключиться на новую ветку
git branch -b
==== Переместить ветку на Commit или ветку ====
git branch -f
git branch -f
==== Переместить ветку на Commit до слияния ====
git branch -f master ORIG_HEAD
==== Удалить ветку ====
Удаление произойдет если слияние было успешно
git branch -d
Удаление ветки с изменениями (Commit)
git branch -D
===== GIT CHECKOUT =====
==== Переключение на другую ветку ====
Переключает HEAD
git checkout
==== Переключиться без сохранения изменений ====
С потерей правок
git checkout -f
==== Создать новую ветку и переключиться на нее с новыми изменениями ====
git checkout -b
==== Отменить все изменения ====
Переключение на последний Commit
git checkout -f HEAD
==== Переключиться на другой Commit и перенести ветку ====
git checkout -B
==== Добавить в текущую ветку файл/каталог из другого Commit или ветки ====
git checkout
==== Переключиться на предыдущую ветку ====
git checkout -
===== GIT STASH =====
==== Архив изменений ====
Если требуется переключиться на другую ветку, но Commit не готов
git stash
Вернуться в исходное состояние (главное вернуться на ту ветку где был сделан архив)
git stash pop
===== GIT MERGE =====
==== Делаем слияние веток ====
Добавить изменения из другой ветки в текущую
git merge
===== GIT RESET =====
История
git reflog master
Изменения записываются в файл:
cat ./git/ORIG_HEAD
==== Отмена последних commit ====
Со временем удаленные commit удалятся
git reset --hard @~
git reset --hard
==== Отменить reset ====
git reset --hard ORIG_HEAD
==== Мягкий reset ====
Отменяет commit, но оставляет изменения
git reset --soft @~
==== Смешанный reset, сбрасывает индексацию ====
Используется по умолчанию
git reset --mixed @~
git reset @~
Сброс индексации в текущем commit
git reset HEAD
Убрать файл из индексации
git reset