¿Git checkout sobrescribe todos los files?

Actualmente tengo este tipo de configuration para mi aplicación web

  1. Copia de desarrollo de la aplicación en la computadora portátil, que es donde hago toda la encoding.
  2. Un repository simple (usando git init –bare en la carpeta /projects/test.git de mi server web). Además, agregué un post-recieve.

Como

#!/bin/sh GIT_WORK_TREE=/public_html/projects/test git checkout -f 
  1. Hago cambios en mi computadora portátil. Haz un git add. , git commit y git push web master .

Mi pregunta es si restablecería los files en / public_html / projects / test para mantenerlo sincronizado con el repository de desarrollo o simplemente presionaría los cambios. Esta pregunta es que cuando las personas suben contenido / envían contenido a la aplicación web, lo agrega a la carpeta / public_html / projects / test / uploads y me preocupa si replaceá el contenido de las cargas con mi copy de desarrollo cada vez. Además, no puedo agregar / upload files a .git_ignore, ya que cuando realizo una carga a través de la máquina de desarrollo y luego hago la inserción, también quiero que esos files se agreguen a la versión de producción public_html. Entonces, ¿cómo funciona este git checkout -f ?

git checkout -f tiene dos valores:

  1. Devuelve files que en el tree git a HEAD
  2. Se esconde de tu list de files que se modifican cuando cambias de twig por files en el tree git

Si el file o la carpeta permanece en git ignora, puedes agregarlo manualmente a git tree mediante git add -f . Por lo tanto, podría ser útil para la máquina del desarrollador.