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