Шпаргалка по Git
Первоначальная настройка
Задаём имя и почту
$ git config --global user.name "Ivan Ivanov"
$ git config --global user.email ivan.ivanov@email.com
Переименовываем главную ветку с master на main
$ git config --global init.defaultBranch main
Основные команды
git init - Создание репозитория в текущей папке
git add -A - Добавить (обновить) все файлы в буферную зону
git reset - Сброс буферной зоны
git add filename - Добавить (обновить) файл в буферной зоне
git commit -a -m"комментарий" - Сохранить все добавленные измененые файлы в репозиторий
git push - Отправка коммита в удалённый репозиторий
git pull - Приём коммита с удалённого репозитория
git status - Посмотреть статус файлов
git branch name_branch - Создать новую ветку
git checkout -b name_branch - Создать новую ветку и перейти в неё
git checkout name_branch - Переключиться на другую ветку
git branch -D name_branch - Удаление локальной ветки
git push origin --delete name_branch - Удаление удаленной ветки
git config --list --show-origin - Выводит список всех настроек и показывает где именно они заданы
Работа с тегами
git tag v1 - Создание тега
git checkout v1 - Переключение по имени тегами
git tag - Вывести список тегов
Удаление коммитов
Команда git reset перемещает указатель HEAD на выбранное количество коммитов назад в локальном репозитории.
У неё есть три режима работы:
git reset --soft commit_hash - изменения остаются в разделе проиндексированных файлов и рабочем каталоге.
git reset --mixed commit_hash - изменения остаются только в рабочем каталоге.
git reset --hard commit_hash - полностью удаляет все изменения.
Флаг --mixed стоит по умолчанию. Команду можно сократить до git reset commit_hash
Для удаления последнего коммита вместо хэша можно указать первого родителя коммита git reset HEAD~
Если коммиты для удаления уже отправлены в удалённый репозиторий, то можно переписать историю коммитов с помощью команды git push --force origin main. Тем самым перезаписав удаленную ветку main на локальную версию ветки main.
Крайне не рекомендуется переписывать историю в удаленном репозитории для предотвращения потери данных и конфликтов в работе других разработчиков.
Копирование ветки git
- Клонировать репозиторий в новую папку (новый репозиторий, не рабочий!)
- Переключиться на нужную ветку
- Удалить привязку у ветки
git remote remove origin - Привязать ветку к нужному репозиторию
git remote add origin <my repo URL>
Изменение регистра букв в названиях файлов в Git
git mv filename.txt FileName.txt –f
Добавление пустой папки в репозиторий
Чтобы пустую папку можно было закоммитить нужно в неё положить файл с именем .gitkeep
Имя фиктивного файла не обязательно должно быть .gitkeep, но оно общепринятое.