2013-04-24 4 views
3

Я не так разбираюсь в управлении версиями, и это мой первый раз с Git. Мы используем BitBucket и TortoiseGit, настраиваем и работаем.Изолировать определенные папки от обновления на git

Теперь я хотел бы иметь возможность изолировать папку (назовем ее «ресурсами»), которая будет содержать некоторые файлы ресурсов, такие как графика, скрипты, звуки, которые не имеют особого значения для кодеров в проекте. Кодеры не должны извлекать или синхронизировать с этой папкой.

Однако другая команда должна иметь возможность манипулировать этой папкой «ресурсы» и вносить в нее изменения, а также получать изменения, внесенные кодами.

Я понимаю, что есть функция игнорирования, которая создает список .gitignore. Но, как я понимаю, этот список будет игнорировать файлы/папки для всех пользователей, так что никто не сможет эффективно получить доступ к папке «resources», как только это будет определено для игнорирования.

Другой способ - разветвить «происхождение» на ветвь «кодеры» и ветвь «ресурсы». Затем «кодеры» будут толкать и тянуть к/от удаленных «кодеров», нажимать (но никогда не тянуть) «происхождение», а также никогда не нажимать на «ресурсы». «Ресурсы» всегда будут тянуть/нажимать на и из «источника», но никогда не «кодеры».

Я подозреваю, что этот процесс действительно нуждается в каком-то опцию «push to specific list of branches».

Не уверен, что я прав о том, как это работает, я пробовал пару экспериментов, но, очевидно, не смог. Я смотрю на это неправильно? Что было бы лучшим решением для такой ситуации (желательно с использованием TortoiseGit).

ответ

1

Убедитесь, что вы не помещаете слишком много (двоичных) «ресурсов» в эту папку: как репозиторий git, эти ресурсы будут клонированы, и они могут значительно увеличить размер репо.

Я бы рекомендовал изолировать их в отдельном репо и объявить, что репо как submodule вашего основного репо.

Эти способы, кодеры могут клонировать основное репо, и им не нужно, если им не нужно, инициализировать и обновлять подмодуль ресурсов.
Но если им нужно, то для этого содержимого, загружаемого в рабочее дерево, достаточно TortoiseGit > Submodule update.

+0

Спасибо за ваш ответ VonC. – ichtyander

+0

Извините, нажатие на вход слишком рано. Спасибо за ваш ответ @VonC. Поэтому, чтобы быть ясным, я понимаю, что клонирование репо было бы локально, ну, клон и, следовательно, занимать место на локальном жестком диске. Но это не должно увеличивать размер удаленного репо, верно? Что касается использования подмодулей, когда вы упоминаете отдельное репо, это на самом деле означает, что мне нужно назначить новое репо на BitBucket для подмодуля? Я считаю, что BitBucket предлагает одно бесплатное репо, поэтому, возможно, это не оптимальное решение для нас прямо сейчас. Я все равно посмотрю на это. Еще раз спасибо! – ichtyander

+0

@ichtyander вы клонируете удаленное репо локально, поэтому размер тот же (на удаленном и локальном). Кроме того, BitBucket позволяет вам иметь как можно больше * public * repos (только частные ограничены). – VonC