Bei git wurde bei vielen Programmen die Funktion patch ergänzt. Bei git-commit nutze ich das auch sehr rege. Jetzt habe ich auch eine schöne Nutzung bei git-checkout gefunden:

Ich hatte viele Änderungen in meinem Code offen und wollte einen Teil davon einzeln prüfen und ggf. dann auch als Commit sichern. Also habe ich mit git-stash alle offenen Änderungen gesichert und in den sauberen Zustand mit git checkout -p stash die Teile geholt, die ich haben wollte. Damit konnte ich besser die Tests erweitern und den Teil selbst abschließen. Dann habe ich alles gesichert und mit git stash pop wieder verbliebenen offenen Änderungen in den Arbeitsstand geholt.