Зачем нужна stage area в Git?

Зачем нужно перед созданием commit помещать файлы в stage area? То есть понятно, что новые файлы нужно добавлять с помощью add, но зачем нужно добавлять файлы, уже находящиеся под контролем? Зачем была принята такая концепция? Ведь по сути получается, что stage area — это репозиторий в репозитории. Вначале мы добавляем файлы в stage, потом комитим их все в локальный репозиторий, потом делаем push в удаленный репозиторий. Зачем этот лишний шаг в виде stage?
  • Вопрос задан
  • 16872 просмотра
Решения вопроса 1
Думаю, ответ немного банален — чтобы можно было выбирать, какие файлы включать в коммит.

Из практики — чаще всего случается git commit -am "...", уже до автоматизма дошло. Т.е. смотрю статус, если есть новые — добавляю, и затем коммит с флагом -a. Но это у меня. Т.к. в моем случае git по большей мере нужен для коммандной работы — сам контроль версий не особо использую. Если нужно балансировать между версиями — используются бранчи.

Тем не менее, если действительно относиться к каждому коммиту, как к стабильной версии для продакшна, то может понадобиться именно такой подход. В этом случае как раз таки staging area и играет роль черновика, из которого можно включить те или иные файлы.

Опять таки, из практики — порой удобно бывает закоммитить определенный файл в случае с хотфиксами.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Meliborn
@Meliborn
Свободное формирование коммита так, как нам этого хочится, а не как диктует vcs?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы