🛰️Git: Основные команды
help
git <command> --help # Откроет информацию по запрашиваемой команде
git commit --help # Пример
init
git init # Создать репозиторий. (Сделать текущую директорию новым репозиторием)
git init <name> # Создать репозиторий в текущей директории с именем <name>
git init basic-git # Пример
clone
git clone <remote-url>
git clone https://github.com/LpilinAlexandr/basic-git.git # Пример через http
git clone git@github.com:LpilinAlexandr/basic-git.git # Пример через ssh
remote
git remote set-url origin https://github.com/LpilinAlexandr/basic-git123.git # Изменить в origin remote адрес
git remote add test https://github.com/LpilinAlexandr/basic-git123.git # Установить новый remote адрес
git remote -v # Посмотреть список всех remote адресов
config
git config -l # Список текущих настроек
git config --global -l # Список глобальных настроек
git config --local -l # Список локальных настроек репозитория
git config --global user.name Name # Установить имя пользователя в глобальной области
git config --global user.email email@example.com # Установить email пользователя в глобальной области
git config --unset <var> # Удалить переменную из настроек
git config alias.<your-alias> <command> # Создание алиаса для команды
git config alias.st status # Пример: теперь сможем писать git st вместо git status
git config --global core.autocrlf <input|false|true> # Настройка параметра окончания строки.
status
git status
git status -s # Статус в короткой форме
add | restore | rm
git add <path> # Добавить в индекс всю директорию или файл по указанному пути
git add . # Добавить всё в текущей директории
git restore --staged <path> # Исключает из индекса добавленную директорию или файл по указанному пути
git restore <path> # Отменить изменения в указанном месте
git rm # Фактически то же самое, что и удаление файла/директории
stash
git stash -m 'my stash name' # Спрячет все изменения в стеш
git stash pop # Достанет последние изменения из стеша, удалив его оттуда. По дефолту 0
git stash apply # Достанет последние изменения из стеша, сохранив его. По дефолту 0
git stash list # Посмотреть список всех стешей
git stash show <stash> # Посмотреть стеш. По дефолту 0
git stash drop <stash> # Удалить стеш. По дефолту 0
commit
git commit -m 'Заголовок коммита' # Сделать коммит
git commit -m 'Заголовок коммита' -m 'Текст под заголовком коммита' # Сделать коммит с заголовком и доп. текстом
git commit <path> -m 'Заголовок' # Закоммитить выбранный каталог
git commit --amend [-m] # Закоммитить изменения в предыдущий коммит
git commit --amend --no-edit # Закоммитить изменения в предыдущий коммит без редактирования заголовка и описания
log
git log # Посмотреть логи по порядку
git log <branch-name> # Посмотреть логи по конкретной ветке
git log --grep <pattern> # Поиск коммитов с подходящей подстрокой
git log --invert-grep <pattern> # Поиск коммитов, не входящих в подстроку
git log --oneline # Список логов, каждый в одной строке
revert
git revert <commit> # Отменить коммит
git revert -n <commit> # Отменить коммит и оставить изменения в индексе
reset
git reset <commit> # Сбросить коммиты в индекс до указанного коммита
--soft # Изменения сбрасываются в индекс (Дефолтное значение)
--hard # Изменения удаляются
git reset --soft HEAD~ # Сбросить последний коммит в индекс
git reset --hard HEAD~4 # Убить последние 4 коммита
# squash life-hack
git reset --soft HEAD~3 # Сбрасываем 3 последних коммита в 1
git commit -m 'Обьединили 3 коммита' # Коммитим заново, тем самым объединяя 3 коммита в 1
cherry-pick
git cherry-pick <commit> # Перенести коммит в HEAD текущей ветки
git cherry-pick -n <commit> # Перенести коммит в HEAD текущей ветки, но не делать коммит
branch
git branch # Посмотреть список локальных веток
git branch <branch-name> # Создать новую ветку от текущей ветки
git branch -a # Посмотреть полный список веток вместе с remotes
git branch -m # Переименовать ветку
git branch -d / -D # Удалить ветку. Мягкое и жесткое удаление
switch | checkout
git checkout <branch> | <commit> # Переключиться на ветку или коммит по его хешу
git checkout -b <new_branch> # Отбранчеваться от текущей ветки в новую ветку и сразу переключиться на нее со всеми изменениями
git switch <branch> | <commit> # Переключиться на ветку или коммит по его хешу
git switch -c <new_branch> # Отбранчеваться от текущей ветки в новую ветку и сразу переключиться на нее со всеми изменениями
merge
git merge <branch> # Слить изменения из ветки <branch> в текущую ветку
git merge --continue # Продолжить слияние в случае решения конфликтов
git merge --abort # Отменить merge
rebase
git rebase <commit> # Встать коммитами текущей ветки на выбранный коммит
git rebase <branch> # Встать коммитами текущей ветки на выбранную ветку
git rebase --continue # Продолжить слияние в случае решения конфликтов
git rebase --abort # Отменить rebase
fetch
git fetch # Запросить все изменения из origin
git fetch <remote> # Запросить все изменения из remote
git fetch <remote> --prune # Запросить все изменения из remote и синхронизировать их
pull
git pull origin <branch> # Стянуть из remote актуальную ветку <branch> (По умолчанию режим merge)
git pull origin <branch> --rebase # Стянуть из remote актуальную ветку в режиме rebase
push
git push <remote> <branch> # Отправить локальную ветку на remote
git push -f <remote> <branch> # Отправить принудительно локальную ветку на remote, перезаписав её
git push -u <remote> <branch> # Отправляем локальную ветку на remote и устанавливаем отслеживание
reflog
git reflog # Показать историю
git reflog <branch> # Показать историю по конкретной ветке
Last updated