Git: Only push private config file to test repository and not to github?

I have a Rails app with a config/my_private_data.yml file. I would like to push the entire app both to my test server and to github.

However, when I push to the test server, I want to include the private file. When I push to github, I don’t want to include the private file. What is the easiest way to go about this?

  • Git checkout fails with detached worktree
  • How to override Git config options by command line parameters?
  • Git best practice for config files etc
  • Where does git config --global get written to?
  • Git Grep color options explained and/or compared
  • How to use 2 different global git configs?
  • how can I get git log from HEAD?
  • git: howto add interactively (-p) when having renamed
  • Conditional Gitignore
  • git: simplest way to share a repository between two laptops on a local network?
  • Fatal: pathspec 'file.txt' did not match any files, GIT
  • Creating a patch with Git - keep only the basename of the filepath?
  • One Solution collect form web for “Git: Only push private config file to test repository and not to github?”

    You can set up two branches. master and secret. You can then add and commit the config/my_private_data.yml in the secret branch which you can then push into the master branch at the testserver.

    touch config/my_private_data.yml
    git checkout -b secret
    git add config/my_private_data.yml
    git commit -m 'Commited secret file'
    git push testserver_repo_url secret
    git checkout master
    git push repo_on_github master

    Then do a git checkout secret; git rebase master if you have new commits on master.
    Don’t commit on secret and if you do, do a cherry pick of that commit.

    Certainly, not all is good with this approach. From what I can think now, you could inadvertently push the secret branch to github. Also, you can’t really work in master if you need the my_private_data.yml-file (you can do a checkout of that file from the secret branch though).

    Git Baby is a git and github fan, let's start git clone.