Bardzo nie znam shelve
aspektu Git. Jeśli stash
jest używany do odłożenia niedokończonej pracy, co shelve
wtedy? Do czego byś go użył?
Na przykład w Aktualizuj projekt (z menu VCS)
dostaniesz (w Idea 2019.2)
git
intellij-idea
jetbrains-ide
Edgar Martinez
źródło
źródło
shelve
nie jest poleceniem git. Jaki jest kontekst tego pytania, skąd pochodzą te terminy?shelve
istnieje w niektórych innych narzędziach, ale nie jest częścią git.shelve
Skrytka Git jest podobna do tej w BZR, HG itp. Czy masz na myśli jakiś pakiet interoperacyjności git?Odpowiedzi:
git shelve
nie istnieje w Git.Tylko
git stash
:Miałeś półkę git ze starego projektu z 2008 roku, aby wyodrębnić modyfikacje w oddziale, ale w dzisiejszych czasach nie byłoby to bardzo przydatne.
Jak udokumentowano w oknie dialogowym Intellij IDEA na półce , funkcja „ półki i półki ” nie jest powiązana z VCS (narzędzie Systemu kontroli wersji), ale z samym IDE, do tymczasowego przechowywania oczekujących zmian, których jeszcze nie wprowadziłeś na liście zmian.
Pamiętaj, że od wersji Git 2.13 (II kwartał 2017 r.) Możesz teraz także przechowywać poszczególne pliki .
źródło
git stash && <your actual command> && git stash pop
ale to jest do bani. Automatyczne półki i aplikacje są bliżej tego, czego potrzebujemy.Podczas korzystania z JetBrains IDE z Git „oprócz ukrywania i odkładania obsługiwane są operacje„ ukrywania i odblokowywania ”. Funkcje te mają wiele cech wspólnych; główna różnica polega na sposobie generowania i stosowania poprawek. Półka może działać z pojedynczymi plikami lub wiązkami plików, podczas gdy Stash może działać jednocześnie z całą masą zmienionych plików. Oto kilka szczegółów na temat różnic między nimi. ”
źródło
git stash -p
co przebija oba. Niestety tylko w wierszu poleceń.Oprócz poprzednich odpowiedzi jest jeszcze jedna ważna uwaga:
shelve
to produkty JetBrains cechą (na przykładWebStorm
,PhpStorm
,PyCharm
etc.). Przechowuje odłożone pliki do.idea/shelf
katalogu.stash
jest jedną zgit
opcji. Umieszcza pliki ukryte w.git
katalogu.źródło
Wolę odkładać zmiany na później, niż je ukrywać, jeśli nie udostępniam ich innym osobom.
Ukrywanie jest funkcją git i nie daje opcji wyboru określonych plików lub zmian w pliku. Regały mogą to zrobić, ale jest to funkcja specyficzna dla IDE, a nie funkcja git:
Jak widać, jestem w stanie określić, które pliki / linie mają być uwzględnione na mojej półce. Zauważ, że nie mogę tego zrobić z ukrywaniem.
Uwaga: używanie półek w IDE może ograniczyć przenośność twoich łat, ponieważ zmiany te nie są przechowywane w folderze .git.
Kilka przydatnych linków:
źródło