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