Git: игнорировать файлы для общедоступного репозитория, но не для частного

Я развертываю приложение Rails на Heroku (на данный момент) через git, и также хотел бы иметь общедоступную версию, чтобы люди могли взглянуть на нее. . Некоторые файлы являются конфиденциальными и должны быть зафиксированы и отправлены только в ветку «heroku», но не в ветку «public». Как лучше всего это сделать?

делаю знает о переменных конфигурации Heroku, которые отлично подходят как временное решение, но не весело, если и когда мне нужно переключать хосты.)

Две ветки не нужно синхронизировать постоянно - я в порядке с периодическим слиянием "основной" ветки с "общедоступной" веткой и отправкой ее в github отдельно.

Я пробовал разные вещи:

  • отдельные .gitignore файлы и «нашу» стратегию слияния - сначала это не сработало, и после того, как я некоторое время возился с этим, я решил, что это становится слишком сложным, чтобы я мог выполнить, казалось бы, простую задачу

  • , используя пользовательский ex clude файл и добавление следующего в .git / config ... это просто не сработало:

.git / config

[branch "public"]
  excludesfile = +info/exclude_from_public

Как лучше всего иметь частный и публичный репозиторий использует один и тот же код, но игнорирует важные файлы в публичном репозитории?

Вы можете предположить, что никакой код не был зафиксирован или отправлен, то есть это только что инициализированный репозиторий.

(Этот вопрос задавался раньше в различных формах, но ни один из ответов не был однозначным или ответы казались действительно хакерскими. Я здесь, чтобы задать этот вопрос очень простым образом, и, надеюсь, получите очень простой ответ.)

34
задан Peter O. 13 January 2012 в 17:12
поделиться