Git-игнорирование файлов на основе удаленного? - PullRequest
7 голосов
/ 04 января 2010

Можно ли игнорировать определенные файлы в git только для определенных пультов? например, я храню учетные данные AWS S3 (s3.yml) в файле для приложения, размещенного на Heroku, поэтому мне нужно проверить s3.yml в моем репо для развертывания на работу. Тем не менее, я хотел бы также опубликовать исходный код на GitHub, так что я бы не допустил s3.yml из репо. Я хотел бы представить, что это работает что-то вроде

#.gitignore
github:config/s3.yml

но не удалось найти ничего в git docs. Это возможно? Или мне нужно поддерживать два отдельных репо?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 05 января 2010

Heroku имеет конфигурационные переменные для такого рода вещей. По их мнению, информация о s3 не должна проверяться в Git. Проверьте эту ссылку для получения дополнительной информации о том, как они ожидают такого рода вещи.

3 голосов
/ 05 января 2010

Этот файл всегда будет жить в репо, если вы опубликуете его как есть. Даже если вы создали ветку и git-rm'd файл, люди всегда смогут проверить версию, в которой еще был файл. Я не вижу способа использовать один репозиторий, сохраняя недоступность одного файла на удаленном компьютере.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...