Skip to content

Git main

Осторожно: сырая статья. Я ещё не дописал :-)

Показать все настройки

Terminal window
git config --list

Установить имя

Terminal window
git config user.name 'Your Name'

Установить почту

Terminal window
git config user.email 'email@test.test'

Редактор по умолчанию

Terminal window
git config core.editor vim

Отключить подсказку в git status

Terminal window
git config advice.statusHints false

Установить сортировку веток по умолчанию

Terminal window
git config branch.sort refname

Подсказка: добавь ”-” перед refname если хочешь вывод в обратном порядке Дополнительно: committerdate сортировка по дате коммита; creatordate сортировка по дате создания

Глобальный конфиг

Подсказка: добавь --global если хочешь внести изменения в глобальный конфиг Пример: git config --global core.editor vim Примечание: у локального .git/config приоритет выше глобального ~/.gitconfig

Добавь директории и файлы, которые не хочешь отслеживать в .gitignore

# .gitignore example
*.log
*.temp
.env/
.cache/
build/
dist/
my_script.sh
my_note.txt

Создать репозиторий

Terminal window
git init

Создать репозиторий в указанном каталоге

Terminal window
git init <project-dir>

Клонировать удалённый репозиторий

Terminal window
git clone <url>

Клонировать в указанный каталог

Terminal window
git clone <url> <project-dir>

Клонировать только последний коммит

Terminal window
git clone --depth 1 <url>

Посмотреть статус изменений

Terminal window
git status

Подсказка: для краткого формата используй -s

Добавить все изменения

Terminal window
git add .

Добавить файл

Terminal window
git add <file>

Интерактивное добавление

Terminal window
git add -p

Добавление по маске

Terminal window
git add *.sh

Примечание: git add добавляет файлы в staged

Сделать коммит через редактор

Terminal window
git commit

Сделать коммит

Terminal window
git commit -m "mesage"

Изменить последний коммит

Terminal window
git commit --amend

Подсказка: если не хочешь менять сообщение, то добавь --no-edit

Переименовать файл/каталог

Terminal window
git mv <old-name> <new-name>

Удалить файл/каталог

Terminal window
git rm <file-or-dir>

Подсказка: используй --cached чтобы удалить из репозитория, но оставить на диске

Список локальных веток

Terminal window
git branch

Дополнительно: -a вывести все ветки (включая remote); -v ветки с последним коммитом

Создать ветку

Terminal window
git branch <name>

Удалить ветку

Terminal window
git branch -d <name>

Примечание: используй -D для принудительного удаления

Переименовать ветку

Terminal window
git branch -m <old-name> <new-name>

Ветки, слитые в текущую

Terminal window
git branch --merged

Переключиться на ветку

Terminal window
git switch <name>

Создать и переключиться

Terminal window
git switch -c <name>

Примечание: старый способ переключения git checkout <name>, чтобы создать и переключиться добавь -b

Сортировка веток по дате последнего коммита

Terminal window
git branch --sort=committerdate

Подсказка: добавь ”-” перед committerdate, чтобы отсортировать в обратном порядке

Сортировка веток по паттерну

Terminal window
git branch --list 'pattern' --sort=refname

Пример: git branch --list 'feature/*' --sort=refname

Слить ветку в текущую

Terminal window
git merge <name>

Подсказка: используй --no-ff, чтобы создать merge-коммит

Сжать все коммиты в одни

Terminal window
git merge --squash <name>

Отменить слияние при конфликте

Terminal window
git merge --abort

Перебазировать текущую ветку на указанную

Terminal window
git rebase <name>

Подсказка: используй -i для интерактивного режима

Отменить rebase

Terminal window
git rebase --abort

Продолжить после разрешения конфликта

Terminal window
git rebase --continue

Применить конкретный коммит к текущей ветке

Terminal window
git cherry-pick <commit>

Подсказка: можно через пробел добавить несколько коммитов или использовать диапазон коммитов через ”..” git cherry-pick <c1>..<c2>

Отменить cherry-pick

Terminal window
git cherry-pick --abort

Продолжить после разрешения конфликта

Terminal window
git cherry-pick --continue