← Назад к вопросам

Какие знаешь команды Git?

1.0 Junior🔥 242 комментариев
#Опыт и софт-скиллы

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Команды Git: от базовых до продвинутых

Как опытный Android разработчик, я ежедневно использую Git для управления кодом, совместной работы и организации процессов CI/CD. Знание Git — это не просто умение выполнить commit, а глубокое понимание системы контроля версий, которое позволяет эффективно работать в команде, решать сложные проблемы и оптимизировать workflow.

Базовые команды для ежедневной работы

Инициализация и клонирование:

git init          # создает новый локальный репозиторий
git clone <url>   # клонирует удаленный репозиторий

Работа с изменениями:

git add <file>    # добавляет файл в индекс (stage)
git commit -m "message" # фиксирует изменения с комментарием
git status        # показывает состояние репозитория
git diff          # показывает различия между изменениями

Ветвление и слияние (branching & merging):

git branch        # список веток
git checkout -b <name> # создает и переключается на новую ветку
git merge <branch> # сливает указанную ветку в текущую
git rebase <branch> # перемещает историю текущей ветки на основу другой

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

Просмотр истории:

git log           # показывает историю коммитов
git log --oneline --graph # компактный вид с графом веток
git show <commit> # показывает детали конкретного коммита

Поиск и диагностика:

git blame <file>  # показывает, кто изменял каждую строку файла
git bisect        # бинарный поиск коммита, внесшего ошибку

Команды для синхронизации с удаленным репозиторием

git pull          # забирает изменения из удаленного репозитория
git push          # отправляет локальные изменения на удаленный репозиторий
git fetch         # забирает изменения без автоматического сливания

Продвинутые команды для сложных ситуаций

Манипуляции с историей:

git reset         # перемещает HEAD и может удалять коммиты из истории
git revert        # создает новый коммит, отменяющий изменения предыдущего

Работа с изменениями временно:

git stash         # временно сохраняет незакоммиченные изменения
git stash pop     # восстанавливает сохраненные изменения

Чистка и оптимизация:

git clean         # удаляет untracked файлы из рабочей директории
git gc            # сборка мусора, оптимизация репозитория

Специфичные команды для Android разработки

В контексте Android проектов особенно важны:

Submodules для библиотек:

git submodule add <url> # добавление внешних библиотек как подмодулей

.gitattributes для управления:
Мы часто используем .gitattributes для правильной обработки бинарных файлов (например, .apk, .aab):

*.apk binary
*.aab binary

Интеграция с Gradle:
В Android проектах мы часто комбинируем Git с Gradle через git tags для автоматического управления версиями:

git tag -a v1.0.0 -m "Release version 1.0.0"

Работа с конфликтами и отладка мерджей

При слиянии веток в Android проектах (особенно когда много ресурсов и XML файлов) конфликты — обычное явление:

git mergetool     # запуск инструмента для разрешения конфликтов
git log --merge   # показывает коммиты, вовлеченные в конфликт

Практические примеры из workflow

  1. Feature development:
git checkout -b feature/new-login
git add .
git commit -m "Implement new login flow"
git push origin feature/new-login
  1. Hotfix на production:
git checkout master
git pull
git checkout -b hotfix/critical-crash
# исправление кода
git commit -m "Fix null pointer in MainActivity"
git push origin hotfix/critical-crash
  1. Синхронизация форков:
    При работе с открытым исходным кодом:
git remote add upstream <original-repo-url>
git fetch upstream
git merge upstream/main

Для Android разработчика понимание Git — это не только знание команд, но и умение применять их в контексте многомодульных Gradle проектов, управления ресурсами и конфигурациями, интеграции с CI/CD системами (Jenkins, GitHub Actions). Особенно важно владение rebase для чистой истории, stash для временного переключения между задачами и bisect для поиска регрессий в сложных приложениях.

Какие знаешь команды Git? | PrepBro