¿Cómo puedo agregar files dinámicamente / automáticamente a git?

Uso un command push para implementar estrategia en serveres Linux.

Funciona genial.

El problema que tengo es que los usuarios pueden agregar files: files creados por el usuario.
Necesito estos files agregados al repository.

¿Cuál es una estrategia para hacer esto?

Aquí está mi impulso para implementar código en hooks/post-receive

 #!/bin/sh git --work-tree=~/public_html --git-dir=~/root.git checkout -f echo "" echo "" echo "" echo "success-" echo "" echo "" echo "" 

Cuando un usuario agrega un file, está en public_html y git no lo rastrea de ninguna manera.

¿Cómo puedo arreglar esto?

Debe agregar y confirmar sus files de usuario primero en su gancho:

 git --work-tree=~/public_html --git-dir=~/root.git add -- path/to/userfile git commit -m "add user file" 

Aquí, path/to/userfile es una ruta relativa, relativa a ~/public_html que es la carpeta raíz del tree de trabajo.

Luego puede continuar y verificar el repository completo:

 git -c 'core.bare=false' --work-tree=~/public_html --git-dir=~/root.git checkout -f 

El -c 'core.bare=false' permite anular la configuration core.bare del repository desnudo, para permitir que git add proceda, considerando ~/public_html como su tree de trabajo.

Si la opción '-c' no funciona (porque el OP usa git 1.7.1, ¡lanzado en diciembre de 2010!), Intente primero (si la actualización de git no es una opción) cambie la configuration y luego restaurela:

 git --git-dir=~/root.git config core.bare false git --work-tree=~/public_html --git-dir=~/root.git add -- path/to/userfile git --git-dir=~/root.git config core.bare true 

Tenga en count que esta es una práctica extraña, ya que hace que un git push resulte en una twig con un compromiso adicional. No te olvides de tirar de jit justo después del empujón git, para poder get ese nuevo compromiso.

Si desea agregar todos sus files, simplemente use:

 # `git add -A` is equivalent to `git add . && git add -u`. git add -A 

Agregará todos sus files modificados + renombrados al índice y luego podrá confirmarlos.

 # on a single line it should be: git add . -A && git commit 

Este command agregará sus files a less que estén en su .gitignore o .gitignore marcados con la bandera de assume-unchanged