Git Config исключает файлы только для ветки - PullRequest
3 голосов
/ 03 октября 2011

Я хотел исключить файл с именем config / dbconfig.js в моей общедоступной ветке, который я использую для отправки на github, но по-прежнему могу передавать из мастер-класса в git-репозиторий noester.com для запуска в производство. Я изменил файл конфигурации на это:

[core]
  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
  excludesfile = +info/exclude
[remote "nodester"]
    url = *** My Git Repo ***
    fetch = +refs/heads/*:refs/remotes/nodester/*
[branch "public"]
  excludesfile = +info/exclude_public

Я удостоверился, что удалил файл .gitignore, и я использую файл .git / info / exclude для общих исключений и надеялся использовать .git / info / exclude_public, чтобы исключить этот один файл, поэтому, когда я объединяю Публичный, этот файл не сливается так же как не толкает к github.

Если я сделаю следующее, он все равно добавит файл в git даже в публичной ветке. Поэтому я думаю, что у меня неправильный синтаксис или это невозможно.

$ git checkout public
$ git add .
$ git status
# On branch public
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   config/dbconfig.json
#

Если это невозможно, есть ли лучший способ иметь дело с конфигами базы данных, которые вы не хотите использовать в открытом проекте Github, без запуска двух репозиториев git и ручного слияния между ними?

1 Ответ

2 голосов
/ 03 октября 2011

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

content filters

Вы бы:

  • сохранить шаблон файла конфигурации
  • сохранить публичные значения
  • разрешить сценарию фильтра содержимого 'smudge' создать целевой файл конфигурации из шаблона и публичныйзначения
    ... за исключением случаев, когда этот сценарий обнаруживает, что он находится в среде развертывания, и в этом случае он будет использовать значения из другого источника на этом сервере (а не общедоступные значения, хранящиеся в репо)

См. Для иллюстрации:

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