¿El command Git porcelain para revertir un solo file a su estado HEAD pero mantener su estado por etapas?

¿Hay un command git porcelain para revertir el estado de directory de trabajo de un file en etapas a su estado HEAD y al mismo time mantener el estado por etapas del file? Más tarde, me gustaría poder revertir el estado del directory de trabajo al estado por etapas del file. Mi idea inicial fue usar git checkout HEAD -- targetfile , pero también restablece el estado por etapas del file. Veo que esto es factible con git stash , pero afecta a otros files, mientras que me gustaría centrarme en un solo file y preservar el estado de los demás, ya que de lo contrario podría conducir a la fusión de conflictos:

 git add targetfile git stash ... // modify tagetfile in seeking of different task solution, possibly modifying other files too git checkout HEAD -- targetfile //drop the different solution attempt, keep other modified files if any git stash apply --index // revert to the stashed staged solution, but produces merge conflict for other modified files 

Encontré un buen artículo con una tabla de resumen al final que carece del escenario descrito en esta pregunta. En mi opinión, esto debería ser fácilmente factible, pero me sorprende que los estados dir procesados ​​y en fase estén tan estrechamente acoplados: puede restablecer el estado por etapas de un file conservando su estado dir operativo, pero tengo dificultades para lograr lo contrario.

No es muy agradable, ya que no obtendrá el estado ejecutable del file correcto, pero en un impulso que podría hacer:

 git show HEAD:targetfile > targetfile 

Idealmente, uno querría una --working-tree-only para git checkout HEAD -- targetfile , pero no sé nada de eso.