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

Где хранятся изменения кода до отправки на удаленный репозиторий c Git?

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

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

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

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

Место хранения изменений до отправки на удалённый репозиторий в Git

В Git изменения кода хранятся в трёх основных областях: рабочая директория (Working Directory), область подготовленных файлов (Staging Area или Index) и локальный репозиторий (Local Repository). До отправки на удалённый репозиторий (Remote Repository) все изменения находятся исключительно в локальной среде разработчика.

1. Рабочая директория (Working Directory)

Это текущее состояние файлов в вашем проекте на локальной машине. Здесь вы вносите правки в код, создаёте новые файлы или удаляете существующие. Однако Git ещё не отслеживает эти изменения — они находятся в «неотслеживаемом» или «изменённом» состоянии.

Например, после редактирования файла MainActivity.kt:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        // Добавлен новый код
        initViews()
    }
    
    private fun initViews() {
        // Реализация метода
    }
}

Это изменение пока существует только в рабочей директории.

2. Область подготовленных файлов (Staging Area / Index)

Перед фиксацией изменений в локальном репозитории вы должны добавить их в Staging Area с помощью команды git add. Эта область действует как промежуточный буфер, где вы формируете «снимок» (snapshot) изменений для следующего коммита.

# Добавляем конкретный файл в Staging Area
git add MainActivity.kt

# Или все изменённые файлы
git add .

Теперь изменения в MainActivity.kt перемещены в Staging Area, но ещё не зафиксированы окончательно. Это позволяет вам:

  • Выборочно добавлять только часть изменений
  • Просмотреть, что будет включено в коммит (git status)
  • Исправить мелкие недочёты перед фиксацией

3. Локальный репозиторий (Local Repository)

После подготовки изменений в Staging Area вы фиксируете их в локальном репозитории командой git commit. Этот репозиторий находится в скрытой папке .git в корне вашего проекта и содержит всю историю коммитов, веток и метаданных.

# Фиксируем изменения с комментарием
git commit -m "Add initViews method to MainActivity"

Теперь изменения сохранены в локальной истории Git как новый коммит с уникальным хэшем (например, a1b2c3d). Однако они всё ещё не отправлены на удалённый сервер (например, GitHub, GitLab или Bitbucket).

Процесс отправки на удалённый репозиторий

Чтобы поделиться изменениями с командой, необходимо явно отправить их на удалённый репозиторий:

# Отправляем коммиты в удалённую ветку (например, origin/main)
git push origin main

До выполнения git push все изменения хранятся только локально — это ключевая особенность децентрализованной архитектуры Git.

Важные нюансы для Android-

  • .gitignore для Android: Всегда настраивайте .gitignore для исключения сгенерированных файлов (папки build/, .gradle/, *.apk, *.aab).
  • Работа с модулями: В многомодульных проектах изменения в каждом модуле проходят те же стадии (рабочая директория → staging → локальный репозиторий).
  • Ветвление: При работе в feature-Nash изменения могут долго существовать только в локальных ветках до мерджа в main и последующего пуша.

Таким образом, Git обеспечивает чёткий трёхэтапный workflow для контроля изменений до их отправки на удалённый сервер, что позволяет разработчикам сохранять историю изменений и работать автономно.