Cómo preparar la list de files rastreados en git que requerirá el pago o el alijo

Sé que puedo saber la list de files sin seguimiento usando debajo

git ls-files --others --exclude-standard 

Necesito preparar una list de los files sin seguimiento que requirieron pago antes de la fusión / extracción de sucursales diferentes, para poder eliminar esos files sin seguimiento después de la verificación de la sucursal y volver a ejecutar el process de pago.

Estoy trabajando en el script de shell para preparar el lanzamiento usando git.

No es terriblemente fácil de pnetworkingecir.

Sin seguimiento simplemente significa que no está en el índice , por lo que debe comparar los contenidos del índice con el contenido del tree de trabajo para encontrar qué files no se rastrean. Esa parte no es demasiado difícil -como usted nota, git ls-files --others --exclude-standard su mayoría hace el trabajo. (Pero debe considerar los files que están marcados como "asumir sin cambios" u "omitir tree de trabajo". No he pensado lo suficiente sobre ellos para decir lo que sucede aquí). Sin embargo, el siguiente paso es encontrar lo que estará en el índice si lees algún otro compromiso.

El problema de averiguar qué habrá en el índice es que debes leer ese compromiso en un índice. Así que tendrás que hacer eso , que es una parte importante del trabajo que hace el process de git checkout , y la única herramienta de scripts que Git proporciona para eso es git read-tree . Puede leer la confirmación en un índice temporal y luego usar el índice temporal para encontrar qué files se crearán, eliminarán o actualizarán al pasar de lo que contiene el índice al compromiso que está proponiendo retirar. Esto es la mayor parte del rest del trabajo que hace el git checkout . Una vez que haya encontrado la list de dichos files, puede compararla con la list de files sin seguimiento del paso anterior.

Todo parece plagado de problemas; probablemente obtendrás mejores resultados ejecutando git checkout y viendo qué funciona y qué falla.