Pracowałem nad gałęzią master, wprowadziłem pewne zmiany, a potem je ukryłem. Teraz mój mistrz jest w HEAD.
Ale teraz chcę pobrać te zmiany, ale do nowej gałęzi, która rozgałęzia się z wersji HEAD gałęzi master.
Jak mam to zrobic ?
Pracowałem nad gałęzią master, wprowadziłem pewne zmiany, a potem je ukryłem. Teraz mój mistrz jest w HEAD.
Ale teraz chcę pobrać te zmiany, ale do nowej gałęzi, która rozgałęzia się z wersji HEAD gałęzi master.
Jak mam to zrobic ?
Odpowiedzi:
Czy standardowa procedura nie działa?
git stash savegit branch xxx HEADgit checkout xxxgit stash popKrótszy:
git stashgit checkout -b xxxgit stash popgit stash save "description"wspomnianego wcześniej polecenia; a następnie I git cleargałąź (do kosza rzeczywistego katalogu roboczego), a następnie git stash apply stash@{my_desired_stash}w pożądanej gałęzi (po przełączeniu do tego git checkout <branch>oczywiście). Wiem, że to nie jest prawdziwe rozwiązanie, ale najlepsze, co możesz zrobić z git .
git stash dropraz, gdy popełniłem
Ponieważ już ukryłeś swoje zmiany, wszystko czego potrzebujesz to ten linijka:
git stash branch <branchname> [<stash>]Z dokumentacji ( https://www.kernel.org/pub/software/scm/git/docs/git-stash.html ):
Tworzy i sprawdza nowy oddział o nazwie < BRANCHNAME > począwszy od popełnienia przy której < zapas > został pierwotnie stworzony, zastosuje zmiany zapisane w < zapas > do nowego katalogu roboczego i indeksu. Jeśli to się powiedzie, a < skrytka > jest odniesieniem do formy skrytka @ {< wersja >}, wówczas upuszcza < skrytkę >. Gdy nie podano < skrytki >, stosuje najnowszą.
Jest to przydatne, jeśli gałąź, na której uruchomiono polecenie git stash save, zmieniła się na tyle, że zastosowanie git stash nie powiedzie się z powodu konfliktów. Ponieważ skrytka jest nakładana na zatwierdzenie, które było HEAD w czasie uruchamiania skrytki git, przywraca pierwotnie ukryty stan bez żadnych konfliktów.
Jeśli masz jakieś zmiany w swoim obszarze roboczym i chcesz je ukryć w nowej gałęzi, użyj tego polecenia:
git stash branch branchName
Uczyni to:
- nowy oddział
- przenieś zmiany do tej gałęzi
- i usuń najnowszą skrytkę (jak: git stash pop)