Não que git possa versionar os links simbólicos, então considere o versionamento dos links simbólicos ao invés de tais arquivos. Além disso, você pode querer considerar os submódulos git para que haja uma relação real entre os dois repositórios.
Se eu tiver sua pergunta / configuração correta, isso pode funcionar. Ele procura por arquivos (recursivamente) na pasta ./project2
com contagem de linhas de um e substitui cada um desses arquivos por um link para o arquivo chamado lá, dado que o destino existe.
#!/bin/bash
for file in $(find project2/ -type f )
do
linecount=$(wc -l $file | awk '{print $1}')
if [ $linecount -eq 1 ]; then
target=$(cat $file)
relTarget=$(dirname $file)/$target
if [ -f $relTarget ] || [ -d $relTarget ]; then
rm $file
ln -s $target $file
fi
fi
done