2013-10-02 10 views
11

W moim obecnym oddziale mam kilka stashes:Jak "zaktualizować" skrytkę?

  1. Gdybym zastosować [email protected]{0}:

    $ git stash apply stash{0} 
    
  2. zmodyfikować to Stash

  3. Chcę, aby zapisać zmiany w bieżącym zapas [email protected]{0}

nie chcę stworzyć 4th zapas Chcę zaktualizować pierwszy zapas .

Czy ktoś może powiedzieć, jak to zrobić? Patrzę na stronę mana ... może coś przeoczyłem.

+3

Problem jest jasny, ale jaki jest przypadek użycia? Dlaczego nie używasz do tego oddziałów? –

+0

Który indeks ukryty chcesz zmodyfikować? – Bucket

+1

Skrypty nie są zatwierdzane. Jeśli potrzebujesz tego rodzaju elastyczności, lepiej byłoby użyć systemu kolejki poprawek. (Nie jestem pewien, jaki jest preferowany dla Git, Quilt lub StGIT.) A może po prostu prywatne gałęzie, które rebelizujesz. – millimoose

Odpowiedz

6

Możesz ukryć swoje działające drzewo, a następnie upuścić stare, którego nie potrzebujesz.

git stash apply 
# Make changes 
git stash 
git stash drop [email protected]{1} 

Alternatywnie, można pop zamiast zastosowania, które spadną na zapas w tym samym czasie:

git stash pop 
# make changes 
git stash 

Inną alternatywą, jeśli już zostały już dokonaniu zmian, które chcesz zrobić przed zdając sobie sprawę z tego, że chcesz scalić zmiany w górnej części skrytki:

# make changes 
git add <all files> 
git stash pop # or apply 
git rm --cached <files that you want to merge> 
git stash --keep-index 
+0

Twój ostatni przykład był dokładnie tym, czego szukałem. Thanx – Nick

+0

+1 do 'git stash --keep-index' – logoff