Подтвердить что ты не робот

Git - нажатие удаленной ветки для большого проекта происходит очень медленно

Мы просто переходим к git в моей работе. У нас есть достаточно большой проект с некоторыми довольно большими ресурсами при управлении версиями (~ 500 МБ).

Сегодня мы пытались перетащить ветку на удаленный сервер и были удивлены тем, что git, казалось, пытался загрузить весь проект. Я бы ожидал, что git отправит только дельта для 4-5 текстовых файлов с изменениями (например, для обычного нажатия на мастер). Разве это не так, как работают удаленные ветки? Мы использовали git push origin some_branch_name, есть ли лучшая команда для использования в этом случае? Должны ли мы не хранить большие ресурсы в git? Если нет, как люди обычно справляются с этим сценарием? Есть ли лучший способ для одного разработчика поделиться совместной работой с другим разработчиком без внесения изменений в главную ветвь? Как бы то ни было, мы смотрим около 15 минут, чтобы протащить удаленную ветку, что действительно невозможно. Что мы делаем неправильно?

4b9b3361

Ответ 1

Можете ли вы обновить свой пост несколькими вещами?

Чтобы лучше понять, как выглядит ваш проект, разместите следующие 10 + записи:

git log --decorate=short --oneline --graph --all

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

Похоже, у вас есть несколько разработчиков, работающих на одном и том же пульте. Это верно? Если это так, ни один разработчик не должен напрямую связываться с master (имхо никогда не должно происходить). Для каждого разработчика возможно иметь свою собственную именованную ветвь. Например, разработчик Джон может создать все свои ветки под john/<branch_name>. Это поможет сохранить чистоту рабочего процесса.

Кроме того, git не работает с дельтами. Он сохраняет файл целиком каждый раз, когда он изменяется. Это может показаться неэффективным, но используемое сжатие уменьшает размер до минимума. И это помогает проверкам и истории журналов сканирования намного быстрее. Прочитайте первый раздел Git Основы для визуализации.