Se você não se importa em mover os arquivos ...
Você pode fazer isso movendo os arquivos para um repositório git e ligando-os simbolicamente a seus locais antigos; você acabaria com
-
~/gitrepo/somedir/otherdir/file1
movido de~/somedir/otherdir/file1
-
~/gitrepo/otherdir/somedir/file2
movido de~/otherdir/somedir/file2
- um link simbólico de
~/somedir/otherdir/file1
para~/gitrepo/somedir/otherdir/file1
- um link simbólico de
~/otherdir/somedir/file2
para~/gitrepo/otherdir/somedir/file2
Você pode, então, com segurança, cometer os arquivos no repositório git, e manipulá-los usando o git, e qualquer coisa usando os caminhos de arquivos antigos verá o que estiver atual na área de trabalho do git. Vincular os arquivos ao contrário, ou usando hard links, seria perigoso porque qualquer operação git que reescreva o arquivo (alterando as ramificações, revertendo para uma versão anterior ...) quebraria o link. (Espero que isso explique porque os hard links não são realmente uma solução viável.)
Com esse tipo de cenário, você terá que ter cuidado com programas que reescrevem arquivos completamente, quebrando links; muitos editores de texto fazem isso, assim como ferramentas como sed -i
etc. Uma abordagem mais segura seria mover as pastas inteiras para o repositório git e criar links simbólicos para os diretórios.
Se você quiser manter os arquivos no lugar ...
Outra possibilidade é criar um repositório git no seu diretório home, dizer ao git para ignorar tudo e, em seguida, adicionar com força os arquivos que você deseja acompanhar:
cd
git init
echo '*' > .gitignore
git add -f .gitignore
git commit -m "Initialise repository and ignore everything"
git add -f somedir/otherdir/file1
git commit -m "Add file1"
git add -f otherdir/somedir/file2
git commit -m "Add file2"
Depois de fazer isso, você poderá acompanhar facilmente as alterações nos arquivos adicionados explicitamente, mas o git não considerará novos arquivos. Com essa configuração, deve também ser seguro ter outros repositórios git em subdiretórios do seu diretório home, mas eu não verifiquei em detalhes ...