Git push elimina files en el server que no están en el local

Problema:

Solo tengo un maestro de twigs. Hice la clonación del repository, realizo cambios, confirmo un "msg" y los vuelvo a enviar -> a las actualizaciones del sitio. Esto esta bien

Pero puedo upload files nuevos al website a través de formularios web y se eliminan cada vez que presiono .

Intenté search en Google y search y leer, pero claramente no entiendo nada, agregué las carpetas específicas para ignorar git y se ignoran cuando se comprometen, pero push elimina claramente esos files …

¿Cuál es el enfoque correcto para este problema? (Sé que podría clonar antes de cada bash, pero supongo que hay una manera mucho más sencilla y más sensata con alguna combinación de recuperación de rebase o algo así …)

A pesar de que es posible trabajar en master, realmente no es factible si hay más de 1 clientes trabajando en el repository. En este caso, su computadora y el formulario web. La creación de twigs de características le permite trabajar de manera más eficiente.

C1--->C2--->C3--->C4--->C5<--master | origin/master 

Antes de trabajar en alguna característica o revisión, puede realizar una git checkout -b featurebranch para crear una nueva twig y realizar los cambios. Después de realizar los cambios, puede confirmar los cambios con git commit -a -m "msg" .

  /--C7<--featurebranch / C1--->C2--->C3--->C4--->C5--->C6<--origin/master | master 

Por lo tanto, ha enviado los cambios a la twig de características, pero ahora desea fusionar la twig nuevamente en principal. Sin embargo, realizó algunos cambios de forma remota y origin/master ahora apunta a una confirmación que no tiene localmente. En la twig maestra, puede git pull origin para get + fusionar todos los cambios nuevos del control remoto obteniendo C6 y moviendo el puntero de la twig principal a C6 .

  /--C7<--featurebranch / C1--->C2--->C3--->C4--->C5--->C6<--master | origin/master 

Después de esto, desea volver a aplicar la confirmación de su sucursal de function en el nuevo maestro. Entonces usas git rebase master featurebranch .

  /--C7<--featurebranch / C1--->C2--->C3--->C4--->C5--->C6<--master | origin/master 

Ahora que C7 se basa en C6 , simplemente puede fusionarlo usando git merge featurebranch en master. Como el repository estuvo sincronizado antes de continuar, verá que se eliminan los files agregados de un formulario web. Finalmente git push origin master .

 C1--->C2--->C3--->C4---->C5--->C6--->C7<--master | origin/master 

Después de muchas excavaciones logré encontrar la respuesta en los foros y la stack de OpenShift … no estoy seguro de cómo no salió antes.

Las modificaciones de time de ejecución modificarán su código en el engranaje. Como esos cambios omiten git, no serán controlados por la versión. Su repository local no estará sincronizado después de esos cambios de time de ejecución, por lo que se recomienda verificar esos cambios en su repository y volver a ponerlos en marcha para poder realizar un seguimiento de dichos cambios.

Para resumir: los files cargados fuera del server commits / push no son monitoreados por git y luego son reemplazados por git.

Solución:

1) Si está cargando files a la carpeta para cargar files, ssh en su aplicación, y haga lo siguiente:

  ln -sf $OPENSHIFT_DATA_DIR/uploads $OPENSHIFT_REPO_DIR/php/uploads 

también asegúrese de hacer una carpeta de carga con mkdir antes de eso.

Esto hará que ese directory sea de acceso público, y dado que el directory de datos no está controlado por git, hace que los datos estén a salvo de la inserción.

2)

0) Asegúrese de que todos sus cambios locales estén sincronizados 1) Realice cambios en su aplicación en time de ejecución (como la installation de un tema) 2) tome una instantánea de su aplicación con "rhc app snapshot save -a {appName}" 3) Sobrescriba todos sus files de repos locales con los files en snapshot.tar.gz (todo en raíz_aplicaciones / repo / * 4) ejecute "git add". en su repository local 5) luego ejecute la actualización "git commit -a -m" a 3.4 "y" git push "

Más información:

https://www.openshift.com/forums/openshift/one-newbie-question

https://www.openshift.com/forums/openshift/php-uploads

https://www.openshift.com/page/openshift-environment-variables