Hay dos enfoques para esto. Siempre que sea posible, comenzaría con una carpeta limpia para su nuevo directorio de trabajo de git y luego copiaría su versión de las cosas más adelante. Esto podría parecerse a *:
mv $dir $dir.orig
git clone $url $dir
rsync -av --delete --exclude '.git' $dir.orig/ $dir/
rm -rf $dir.orig
En este punto, debe tener una copia de trabajo bastante limpia con su carpeta de trabajo anterior como el directorio de trabajo actual, por lo que cualquier cambio que incluya la eliminación de archivos aparecerá en el radar si ejecuta git status
.
Por otro lado, si realmente debe hacerlo al revés, puede obtener el mismo resultado con algo como esto:
cd $dir
git clone --no-checkout $url tempdir
mv tempdir/.git .
rmdir tempdir
git reset --mixed HEAD
De cualquier manera, lo primero que haría es ejecutar algo como git stash
obtener una copia de todos sus cambios locales, luego puede volver a aplicarlos y determinar a través de cuáles desea comprometerse.
* Ambos ejemplos asumen que comienzas en el shell en el directorio principal de tu proyecto.