Jest to proste podejście, jeśli nie ma dużo zmian w kodzie:
1. git stash
2. git stash apply
3. remove the files/code you don't want to commit
4. commit the remaining files/code you do want
Następnie, jeśli chcesz, aby kod, który usunąłeś (bity, których nie zatwierdziłeś) w oddzielnym zatwierdzeniu lub w innej gałęzi, wtedy będąc jeszcze w tej gałęzi, wykonaj:
5. git stash apply
6. git stash
W kroku 5, gdy już zastosowałeś ukrytą i zatwierdziłeś kod, który chciałeś w kroku 4, różnicę i niewyśledzenie w nowo zastosowanej skrytce jest tylko kodem, który usunąłeś w kroku 3 przed zatwierdzeniem w kroku 4.
W związku z tym krok 6 to ukryty kod, którego nie [chciałeś] zatwierdzić, ponieważ prawdopodobnie tak naprawdę nie chcesz stracić tych zmian, prawda? Tak więc nowa skrytka z kroku 6 może być teraz przypisana do tej lub dowolnej innej gałęzi, wykonując polecenie git stash dla właściwej gałęzi i zatwierdzając.
Oczywiście zakłada to, że wykonujesz kroki w jednym przepływie, jeśli skasujesz w dowolnym innym punkcie tych kroków, musisz zanotować oznaczenie skrytki dla każdego kroku powyżej (zamiast tylko podstawowej skrytki i zastosować najnowszą skrytkę).