¿Cómo deshacer las eliminaciones de files de una confirmación histórica?

En un repo, tengo una confirmación (alnetworkingedor de 3 detrás de HEAD) que tiene una gran cantidad de eliminaciones de files que fueron accidentalmente organizadas e incluidas en la confirmación. Dependiendo del tipo de file, aparecen como cualquiera de los siguientes al ejecutar git log --stat :

 path/to/some/file | Bin 22522 -> 0 bytes path/to/another/kind/of/file | 1 - 

Me gustaría revertir estas eliminaciones y no tener ninguna de ellas en mi confirmación. (Nota: no estoy tratando de ocultar las eliminaciones, así que si hay un método que las invierte, también está bien. Simplemente no quiero que mi PR se fusione en estas eliminaciones de files).

Si hay algo que debería hacer para actualizar el control remoto después de invertir las eliminaciones de files, eso sería útil también.

Esto no tiene nada que ver con mover HEAD, pero cancelar selectivamente (en Git linguo, " revertir ") algunos files de una confirmación.

En su caso, la confirmación @~3 incluye eliminaciones que no desea, pero también otros files (es posible que no desee volver).

 git revert --no-commit @~3 # Revert, don't commit it yet git reset # Unstage everything # add only the files you need (ie the one created, not the ones modified) git add $(git ls-files -o --exclude-standard) 

Aquí desea, después de revertir all commit @~3 , seleccionar solo los files sin seguimiento (es decir, los files creados nuevamente por git revert, ya que esas creaciones cancelan lo que se eliminó en @~3 ).
Consulte " Git agrega solo todos los files nuevos, no los files modificados ".