Actualización de files repos repo a git

Tengo un repository simple y edité los files directamente sin hacer un command git commit -a -m porque estaba corriendo, ¿es posible actualizar el git para conocer los cambios que he hecho? Porque cuando hago un git status en el repository desnudo obtengo un:

 fatal: This operation must be run in a work tree 

EDITAR: Esto es lo que hago para el repository simple:

 #!/bin/bash NAME=$1 mkdir git/$1 cd git/$1 git init --bare echo "git clone /root/git/$1 /tmp/git/$1" >> hooks/post-receive echo "cp -rp /tmp/git/$1/* /var/www/$1" >> hooks/post-receive echo "rm -rf /tmp/git/$1" >> hooks/post-receive 

Entonces, lo que hice fue editar directamente los files en el directory /var/www/$1/ .

Bueno, supongo que podrías hacer esencialmente lo contrario de lo que está haciendo ese gancho post-receive (no probado):

 git clone /root/git/<repo> /tmp/<tmprepo> cp -rp /var/www/* /tmp/<tmprepo> cd /tmp/<tmprepo> git checkout <branch_to_put_cruft_on> git commit -a -m "collecting misc edits from web tree" git push origin <branch_to_put_cruft_on> cd - rm -rf /tmp/<tmprepo> 

Si hay files adicionales en /var/www más allá del material del repository, el cp atrapa más de lo necesario, pero el git commit -a debe ignorar los files que actualmente no están siendo rastreados.

Probablemente también --git-dir lograr esto con las --git-dir git s --git-dir y --work-tree , y eso podría darte una solución más limpia, pero no he jugado mucho con eso. Algo en esta línea (también no probado, YMMV, bla, bla …):

 git clone /root/git/<repo> /tmp/<tmprepo> cd /tmp/<tmprepo> git checkout <somebranch> git --git-dir=/tmp/<tmprepo>/.git --work-tree=/var/www commit -a -m "collect edits" git push origin <somebranch> cd - rm -rf /tmp/<tmprepo> 

Para ser aún más cuidadoso, en lugar de hacer git commit -a , use las --git-dir y --work-tree con la serie apropiada de git add sy haga un commit apropiado.