2010-01-04 3 views
7

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

#.gitignore 
github:config/s3.yml 

но не смог найти что-либо в документах git. Это возможно? Или мне нужно поддерживать два отдельных РЕПО?

Спасибо!

ответ

3

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

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

+0

Я как бы ожидал. Я просто надеялся, что ребята из git проработали это для нас - они очень проклятые, в конце концов: D – trydionel

3

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

+0

Отличная ссылка - я раньше этого не видел. Это, безусловно, позаботится о примере! – trydionel

Смежные вопросы