Защита файлов в репозитории git

Есть ли хороший способ обработать разрешение на отдельные файлы в репозитории git?

У меня есть проект .net, которым я хочу поделиться со своей командой. Я не хочу делиться строками подключения к производственной базе данных, хранилищу и так далее.

Я знаю, что могу создать новую ветку с этими файлами, но все становится намного сложнее.


person Ari    schedule 06.08.2013    source источник
comment
связанные: stackoverflow.com/questions / 3071013 /   -  person Tobias Kienzler    schedule 06.08.2013


Ответы (2)


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

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

person Tobias Kienzler    schedule 06.08.2013

Настоящий ответ заключается в том, что в ваш код не должно быть встроенных конфиденциальных данных. Строки подключения должны быть прочитаны во время выполнения из некоторого хранилища конфигурации (любого типа, находящегося в app.config или в INI-файле или в каком-либо другом), и если вы остановитесь на файлах конфигурации, вы должны хранить только в репозитории образцы для этих файлов, которые предназначены только для справки.

person kostix    schedule 06.08.2013
comment
Конфиги - это файлы, о которых я говорю. Я не хочу хранить их только на своем персональном компьютере. Я хотел бы иметь возможность управлять разрешениями для этих файлов. Если мне нужно обновить производственную среду, я просто объединяю git и публикую его. - person Ari; 06.08.2013
comment
@Ari Как мы с kostix заявили, репозиторий не должен никогда содержать конфиденциальные данные, и единственное, что вы можете сделать с помощью git, - это использовать, например, gitolite, чтобы определенные ветки были доступны только ограниченному кругу пользователей. Невозможно скрыть файлы в фиксации от определенных пользователей, поскольку отсутствие этих файлов приведет к другому идентификатору фиксации. - person Tobias Kienzler; 06.08.2013
comment
@Ari, Git - это не инструмент для развертывания. Но даже если вы так его используете, какая проблема в том, что в репозитории не хранится чувствительный (настоящий) файл конфигурации? Просто сделайте так, чтобы они были в вашей производственной системе, и научите свой код находить их во время выполнения. В чем проблема, правда? - person kostix; 06.08.2013
comment
@kostix Мне нужно как-то сохранить эти файлы. Репо кажется хорошим местом. - person Ari; 07.08.2013