Git
Бесплатный курс Основы работы с Git. Яндекс Практикум |
Настройка
git config | Настройка параметров Git, таких как имя пользователя и электронная почта. |
Работа с репозиторием
git init | Инициализация нового Git-репозитория в текущем каталоге. |
git clone <url> | Клонирование удаленного репозитория на локальную машину. |
git status | Показ текущего состояния репозитория, включая измененные и готовые к коммиту файлы. |
git add <file> | Добавление изменений в файл в индекс (staging area) для последующего коммита. |
git commit -m "сообщение" | Сохранение изменений в локальном репозитории с описанием коммита. |
git log | Просмотр истории коммитов в репозитории. |
git diff | Просмотр различий между текущими изменениями и последним коммитом. |
Работа с ветками
git branch | Просмотр списка всех веток в репозитории или создание новой ветки. |
git checkout <branch-name> | Переключение на указанную ветку. |
git checkout -b <branch-name> | Создание новой ветки и немедленный переход на неё. |
git merge <branch-name> | Слияние изменений из указанной ветки в текущую ветку. |
git rebase <branch-name> | Перенос изменений из одной ветки на другую для создания линейной истории коммитов. |
git branch -d <branch-name> | Удаление локальной ветки. |
Работа с удаленными репозиториями
git remote | Управление удаленными репозиториями. Просмотр настроенных удаленных репозиториев. |
git remote add <name> <url> | Добавление нового удаленного репозитория. |
git fetch <remote> | Получение изменений из удаленного репозитория без слияния с текущей веткой. |
git pull <remote> <branch> | Получение изменений из удаленного репозитория и слияние с текущей веткой. |
git push <remote> <branch> | Отправка локальных коммитов в удаленный репозиторий. |
История и отмена изменений
git reset <commit> | Отмена коммита, возвращение к указанному коммиту. |
git revert <commit> | Создание нового коммита, который отменяет изменения, внесенные указанным коммитом. |
git stash | Сохранение текущих изменений в отдельном месте и очистка рабочей директории. |
git stash pop | Восстановление сохраненных изменений из stash и удаление их из stash. |
Работа с тегами
git tag | Просмотр всех тегов в репозитории. |
git tag <tag-name> | Создание нового тега на текущем коммите. |
git push <remote> <tag-name> | Отправка тега в удаленный репозиторий. |
git tag -d <tag-name> | Удаление локального тега. |
Продвинутые команды
git cherry-pick <commit> | Применение изменений из указанного коммита в текущую ветку. |
git rebase -i <commit> | Интерактивный rebase, позволяющий редактировать историю коммитов. |
git ls-files | Просмотр списка файлов, отслеживаемых Git. |
git grep <pattern> | Поиск строки в файлах, отслеживаемых Git. |
.gitignore file
Файл .gitignore — это специальный файл, используемый системой контроля версий Git для определения, какие файлы и каталоги должны быть игнорированы Git при отслеживании изменений. Это полезно для исключения временных файлов, файлов конфигурации, кэшированных данных и других файлов, которые не должны быть включены в репозиторий.
Расположение
Файл .gitignore должен находиться в корневой директории вашего Git-репозитория, но также можно создавать файлы .gitignore в поддиректориях для более детальной настройки игнорирования.
Формат
В файле .gitignore каждая строка определяет правило для игнорирования файлов и каталогов. Формат правил довольно прост и может включать:
• Шаблоны файлов: Вы можете использовать символы подстановки (*, ?, []) для указания файлов и директорий.
• Исключения: Можно использовать восклицательный знак (!) для указания файлов или директорий, которые должны быть включены, несмотря на общие правила игнорирования.
• Комментарии: Строки, начинающиеся с решетки (#), являются комментариями и игнорируются Git.
Настройка для Android-проекта
.gradle и build | Эти каталоги содержат временные файлы и артефакты сборки, которые создаются во время процесса компиляции. Их следует игнорировать, так как они могут быть воссозданы при необходимости. |
*.iml и .idea | Эти файлы и каталоги создаются IDE, такой как IntelliJ IDEA или Android Studio, и содержат информацию о проекте и настройках. Они не нужны в репозитории. |
local.properties | Этот файл содержит локальные пути и настройки, такие как путь к SDK, и не должен быть коммитирован. |
*.keystore | Хранит ключи подписи приложения и является конфиденциальной информацией. Обычно его не следует включать в репозиторий. |
# Каталог с кэшем и временными файлами сборки
build
build-cache
generated
# Конфиги Kotlin
.kotlin
.kotlin-js-store
# Зависимости, устанавливаемые через Gradle
.gradle
# Локальные файлы Android Studio
.idea/
*.iml
# Файлы конфигурации
local.properties
# Лог-файлы
*.log
# Артефакты сборки
*.apk
# Файлы пользовательских настроек
*.iml
# Ключи подписи приложения
*.keystore