Основные команды Git для контроля версий - ветвление, коммиты, слияние и совместная работа.
Настройте Git и задайте свою идентификацию
# Установите ваше имя и email
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# Проверьте вашу конфигурацию
git config --list
# Установите имя ветки по умолчанию
git config --global init.defaultBranch main# Установите редактор по умолчанию
git config --global core.editor "code --wait"
# Включите цветовой вывод
git config --global color.ui auto
# Настройте помощник учётных данных (Windows)
git config --global credential.helper wincredИнициализация или клонирование репозиториев Git
# Инициализировать новый репозиторий
git init
# Инициализировать с указанием имени ветки
git init -b main
# Клонировать существующий репозиторий
git clone https://github.com/user/repo.git
# Клонировать в указанный каталог
git clone https://github.com/user/repo.git my-folderОбщие команды для ежедневного использования Git
# Проверить статус репозитория
git status
# Добавить файлы в область подготовленных
git add file.txt
git add . # Добавить все файлы
git add *.js # Добавить все файлы JavaScript
# Зафиксировать изменения
git commit -m "Commit message"
git commit -am "Message" # Добавить и зафиксировать отслеживаемые файлы
# Просмотреть историю коммитов
git log
git log --oneline # Сжатый вид
git log --graph # Показать граф ветокСоздание и управление ветками
# Список веток
git branch # Локальные ветки
git branch -a # Все ветки (локальные + удалённые)
# Создать новую ветку
git branch feature-branch
# Переключиться на ветку
git checkout feature-branch
git switch feature-branch # Современная альтернатива
# Создать и переключиться на новую ветку
git checkout -b feature-branch
git switch -c feature-branch# Слить ветку в текущую ветку
git merge feature-branch
# Удалить ветку
git branch -d feature-branch # Безопасное удаление
git branch -D feature-branch # Принудительное удаление
# Переименовать ветку
git branch -m old-name new-nameРабота с удалёнными репозиториями
# Список удалённых репозиториев
git remote -v
# Добавить удалённый репозиторий
git remote add origin https://github.com/user/repo.git
# Получить изменения из удалённого репозитория
git fetch origin
# Слить изменения из удалённого репозитория
git pull origin main
# Отправить изменения в удалённый репозиторий
git push origin main
git push -u origin main # Установить upstream и отправить# Удалить удалённый репозиторий
git remote remove origin
# Переименовать удалённый репозиторий
git remote rename old-name new-name
# Изменить URL удалённого репозитория
git remote set-url origin https://github.com/user/new-repo.gitОткат или сброс изменений
# Отбросить изменения в рабочем каталоге
git restore file.txt
git checkout -- file.txt # Старый способ
# Снять файлы с индекса
git restore --staged file.txt
git reset HEAD file.txt # Старый способ
# Изменить последний коммит
git commit --amend -m "New message"
# Откатить коммит (создаёт новый коммит)
git revert <commit-hash># Сброс к предыдущему коммиту (будьте осторожны!)
git reset --soft HEAD~1 # Сохранить изменения в индексе
git reset --mixed HEAD~1 # Сохранить изменения без индекса
git reset --hard HEAD~1 # Отбросить все изменения
# Сброс к конкретному коммиту
git reset --hard <commit-hash>Временное сохранение изменений
# Сохранить текущие изменения
git stash
git stash save "Work in progress"
# Список stash'ей
git stash list
# Применить stash # Оставить stash
git stash apply # Оставить stash
git stash pop # Применить и удалить stash
# Применить конкретный stash
git stash apply stash@{0}
# Удалить stash
git stash drop stash@{0}
git stash clear # Удалить все stash'иИсследование различий и истории
# Показать неиндексированные изменения
git diff
# Показать индексированные изменения
git diff --staged
git diff --cached
# Показать изменения между коммитами
git diff commit1 commit2
# Показать изменения в конкретном файле
git diff file.txt# Показать детали коммита
git show <commit-hash>
# Показать файл в конкретном коммите
git show <commit-hash>:file.txt
# Показать, кто что изменил в файле
git blame file.txtДополнительные полезные команды Git
# Очистить неотслеживаемые файлы
git clean -n # Пробный запуск
git clean -f # Удалить файлы
git clean -fd # Удалить файлы и каталоги
# Поиск в репозитории
git grep "search term"
# Показать, кто внес изменения в файл
git log --follow file.txt
# Создать алиас
git config --global alias.st status
git config --global alias.co checkout# Игнорировать изменения файла
git update-index --assume-unchanged file.txt
# Снова отслеживать изменения файла
git update-index --no-assume-unchanged file.txt
# Показать отслеживаемые файлы
git ls-files