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).