Puede configurar dos ramas. master
y secret
. A continuación, puede agregar y confirmar el config/my_private_data.yml
en la rama secret
que luego puede insertar en la rama maestra en el servidor de pruebas.
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
A continuación, realice una git checkout secret; git rebase master
si tiene nuevas confirmaciones en maestro.
No se comprometa en secret
y, si lo hace, haga una selección perfecta de esa confirmación.
Ciertamente, no todo es bueno con este enfoque. Por lo que puedo pensar ahora, podrías inadvertidamente empujar la rama secreta a Github. Además, no puede trabajar realmente en master
si necesita el archivo my_private_data.yml
(sin embargo, puede realizar una extracción de ese archivo desde la rama secreta).
¿Qué tan privado? Si se trata de un desastre masivo si el archivo se vuelve público, no lo incluya en absoluto (use 'config/private_data.yml.template' con valores predeterminados). Lo más probable es que usted, o alguien se equivoque y tenga los datos en github o en otro lugar donde nunca pensó en el momento. – Unapiedra
No es particularmente privado, pero no es algo que quiera compartir. No publicaría mis códigos nucleares en github ni los pondría en mi aplicación. – Clay
esto aquí debería ser una solución: http://stackoverflow.com/questions/1836742/using-git-how-do-i-ignore-a-file-in-one-branch-but-have-it-committed- en-otro –