Przypuszczam, że pozwala na przenoszenie zmian z jednej gałęzi do drugiej, ale po to jest właśnie wybieranie wiśni i jeśli nie zatwierdzasz swoich zmian, być może nie powinieneś ich przenosić?
Czasami zakładałem niewłaściwą skrytkę w niewłaściwym oddziale, co powodowało, że zastanawiałem się nad tym pytaniem.
git stash-here
ktoś?Odpowiedzi:
Jak wspomniano, jeśli chcesz mieć „skrzynię na gałąź”, naprawdę chcesz, aby nowa gałąź wypadła z istniejącej gałęzi.
Poza tym, poza wspomnianym już faktem, że skrytka pozwala ci wciągnąć się do gałęzi, nad którą pracujesz, pozwala też na zmianę gałęzi, zanim zrobisz wszystko. Jest to przydatne nie do zbierania wiśni w zwykłym sensie, ale do wybierania wiśniowej kopii roboczej .
F.ex., pracując nad gałęzią funkcji, często zauważam drobne błędy lub kosmetyczne zanieczyszczenia w kodzie, które nie dotyczą tej gałęzi. Cóż, naprawię je od razu. Kiedy nadchodzi czas na zatwierdzenie, wybiórczo zatwierdzam odpowiednie zmiany, ale nie wprowadzam poprawek i kosmetyków. Zamiast tego przechowuję te, co pozwala mi przejść do gałęzi drobnych poprawek w stabilnej, w której mogę następnie zastosować skrytkę i zatwierdzić każdą drobną poprawkę osobno. (W zależności od zmian w pytaniu, będę również schować niektóre z nich jeszcze raz, aby przełączyć się do innego oddziału fabularnym, gdzie zastosowanie tych ).
To pozwala mi wejść głęboko w tryb programowania, kiedy pracuję, i nie martwić się o właściwą bibliotekę mojego kodu. Potem, kiedy robię sobie przerwę psychiczną, mogę wrócić i ostrożnie posortować zmiany na wszystkich odpowiednich półkach.
Gdyby magazyn nie był globalny, tego typu przepływ pracy byłby znacznie trudniejszy do wykonania.
źródło
As mentioned, if you want a “per-branch stash,” you really want a new branch forking off from the existing branch.
. W szczególności często przełączam się między dwiema wersjami tego samego programu, a uruchomienie pełnejmake
trwa 10 minut; możliwość przechowywania zbudowanych plików binarnych dla poszczególnych gałęzi byłaby bardzo miła. I na pewno nie chcę plików binarnych w dzienniku lub w gałęzi.Począwszy od Git 1.6, możesz teraz nakładać skrytki na gałęzie za pomocą
Git utworzy dla Ciebie nową gałąź i sprawdź to! Więcej informacji znajdziesz w
książka git
info git-stash
i wyszukaj opcję =branch
.Domyślam się, że możesz przenosić skrytki za pomocą
a żeby zobaczyć listę swoich skrytek, użyj
Odniesienie
źródło
gitk --all
” nie pokazywał już mojej pierwszej skrytki; Myślałem, że to może być zbite. Po zakończeniu pracy w drugim oddziale wyrzuciłem ten schowek. Potem mój zaktualizowany plik „gitk --all
” ponownie pokazał oryginalny schowek.jeśli chcesz „skrytkę”, która wychodzi poza gałąź, zrób coś takiego, aby zapisać zmiany w nowej gałęzi poza bieżącą gałęzią.
żeby cofnąć skrytkę
git stash jest szczególnie przydatny, ponieważ możesz przeciągać zmiany do brudnego drzewa, tj. jeśli masz zaległe edycje i chcesz zrobić
a nie możesz, możesz schować zmiany, pociągnąć, a następnie zastosować skrytkę
mam nadzieję, że to pomogło!
źródło
make
w tej gałęzi? (Magazyn dla poszczególnych gałęzi zaoszczędziłby czas następnym razem, gdy wykonasz kompilację przyrostową w tej gałęzi, ale z pewnością nie chcesz dodawać plików binarnych do indeksu)git-stash jest dla mnie najbardziej przydatny do przenoszenia niezarejestrowanych zmian do innej gałęzi niż ta, która jest obecnie wyewidencjonowana.
Na przykład - często robię proste zmiany w gałęzi z poprawkami błędów; tylko po to, aby odkryć, że zmiana, nad którą pracuję, jest bardziej złożona, niż przypuszczałem na początku. Git-stash to najłatwiejszy sposób na przeniesienie tego zestawu zmian do innej gałęzi.
źródło