etckeeper
é o que você está procurando.
ATUALIZAÇÃO Qui Set 13 16:41:44 ICT 2012
I do already have etckeeper in place, but I want to selectively restore parts to
/etc
Claro, você pode fazer isso usando checkout esparso recurso em Git 1.7.0 .
por exemplo:
cd /etc
git init
git remote add -f origin git+ssh://[email protected]/etckeeper/<server_name>.git
git config core.sparseCheckout true
echo 'path/to/subdir/*' >.git/info/sparse-checkout
git checkout <branch_name>
Não se esqueça de incluir um caractere *
no final do caminho; caso contrário, você receberá:
error: Sparse checkout leaves no entry on working directory