threads / discuss / 19740

git use pattern questions

Subject: git use pattern questions

## tl;dr

2 messages between Jun 8, 2009 and Jun 8, 2009.

replies: 1people: 2as markdown or json

Alex K· Jun 8, 2009, 09:06 UTC · lore
Hello

I would like to publish a repository on say github but I would still like to hide sensitive information from a config file which nevertheless needs to be part of the repo. If it was possible to publish a single branch then I'd make one especially for github and publish the config file with something like "your password here"...

Would you know what's the best pattern to publish a repository but still hide sensitive information such as values of passwords, mysq port etc..?

Also I have a developpement version of the site and a production version on another server. Is making a branch for the production version a good choice? I used to simply rsync the changes from dev to prod and make the changes in the config file for the production version. This makes sense because in order for the site to run a mysql dump and some other data not part of the repo needs to be synced.

Thank you,
Alex
Jeff King· Jun 8, 2009, 12:29 UTC · re: Alex K · lore

Re: git use pattern questions

On Mon, Jun 08, 2009 at 10:06:50AM +0100, Alex K wrote:
Show 9 quoted lines
> I would like to publish a repository on say github but I would still
> like to hide sensitive information from a config file which
> nevertheless needs to be part of the repo. If it was possible to
> publish a single branch then I'd make one especially for github and
> publish the config file with something like "your password here"...
> 
> Would you know what's the best pattern to publish a repository but
> still hide sensitive information such as values of passwords, mysq
> port etc..?

That is not really possible with git. If you publish a branch, all of its contents will be visible to anyone who clones it. You _could_ keep a pristine branch without any config, do your development there, and then merge it to a branch with the secret config file in it. And then just publish the development branch. I suspect that would become a pain in the long run, as you would need to commit and merge in order to do a test.

Generally, I think the strategy people use is not to put the config file into git at all. Put in a sample for people to read, but keep your personal one as a purely local thing. You will then have to deal with deployment of the tracked files and the config file separately (but usually people don't deploy directly using git; they use "make install" or rsync or whatever from their git checkout).

-Peff

← back to recent threads