IntelliJ'in Shelve ve Git zulası arasındaki fark nedir?


Yanıtlar:


69

IntelliJ belgelerinden :

Git entegrasyonunda, raflara ayırma ve raftan çıkarmaya ek olarak, sırasıyla "zulalama" ve "saklamayı çözme" desteklenmektedir. Bu özelliklerin pek çok ortak noktası vardır, tek fark yamaların oluşturulma ve uygulanma biçimidir.

  • Saklanan değişikliklere sahip yamalar Git'in kendisi tarafından oluşturulur. Bunları daha sonra uygulamak için IntelliJ IDEA'ya ihtiyacınız yoktur.
  • Raflı değişikliklere sahip yamalar IntelliJ IDEA tarafından oluşturulur. Normalde IDE aracılığıyla da uygulanırlar. IntelliJ IDEA dışında raflı değişikliklerin uygulanması da mümkündür, ancak ek adımlar gerektirir.

23
Peki, sade git ile "daha az uyumlu" olduğu için rafların avantajları nelerdir?
MaxiWheat

17
Yerel bir stash stili özelliği olmayan bir VCS kullandıysanız, rafların kullanışlı olacağı görülüyor. Git kullanırsan, gerçek bir fayda göremiyorum.
Daniel Compton

5
'Gerçek faydalar' cevapta id.bobr tarafından listelenmiştir. Benim için en önemli şey, hangi dosya / parçaların saklanacağını seçebilmektir, tıpkı taahhütte olduğu gibi.
Martin Melka

1
Git 2.13'ten beri, tek tek dosyaları git stash push.
Deric Lima

Shelve, içinde ne olduğu ve neyin farklı olduğu konusunda size çok daha iyi bir genel bakış sağlar. Değiştirilen dosyaların yalnızca bazı kısımlarını uygulamak daha kolaydır. İlk başta bu özelliğe ikna olmadım ama şimdi onu zuladan daha sık kullanıyorum.
itachi

47

Aşağıdakiler dışında oldukça benzerler:

  • Rafı IDE dışında kullanamazsınız çünkü bu Intellij'in özelliğidir.
  • Git stash yalnızca tüm çalışma dizini ve dizin ile çalışır. IntelliJ'in rafı, ayrı dosyalar ve değişiklik listeleriyle çalışabilir (başka bir IntelliJ'in özelliği). Gördüğünüz gibi, mesela burada bazen gerekli oluyor.
  • Fikir, raf için daha iyi yerleşik desteğe sahiptir. Git stash ile çalışmak daha basittir. Özellikle, sürüm kontrol aracı penceresinden değişikliklerinizi rafa kaldırabilir / kaldırabilir veya raflı dosyaları inceleyebilirsiniz.

Ayrıca IMHO, özellikle büyük bir projede, çok sayıda dosya değiştirildiğinde, raf biraz daha hızlı çalışır.

Daha fazla bilgi için belgelere bakın .


Çok kullanışlı olması için hızlı bir şekilde rafa kaldırmak için bir değişmez üzerine sağ tıklamayı buluyorum. Söylediğiniz gibi, biraz daha hızlı buluyorum.
vikingsteve

4
"Git zulası yalnızca tüm çalışma dizini ve dizin ile çalışır" - bu yanlıştır. Git zulası tek tek dosyaları ve klasörleri de git stash -- foo/bar.txt
saklayabilir

21

Intellij's Shelve'in düz Git'in zulasına göre sahip olduğu belirgin bir avantaj, Shelve'ı kullanarak, birden fazla depoya ait değişiklikleri tek bir değişiklik listesinde kaydedebilmenizdir. Zulayı kullanarak, her depoda ayrı ayrı saklamanız / saklamanız gerekir. Bu, belirli bir özelliğin birden çok modülü (ve dolayısıyla birden çok depoyu) kesebileceği birden çok modüllü (her biri kendi deposu olan) büyük bir projede çok kullanışlıdır.


0

İşte Belgelerin Söylediği

Saklama değişiklikleri, raflara çok benzer. Tek fark, yamaların oluşturulma ve uygulanma şeklidir. Zulalar Git tarafından oluşturulur ve IntelliJ IDEA içinden veya dışından uygulanabilir. Raflı değişikliklere sahip yamalar, IntelliJ IDEA tarafından oluşturulur ve ayrıca IDE aracılığıyla uygulanır. Ayrıca, saklamak taahhüt edilmeyen tüm değişiklikleri içerirken, bir rafa değişiklik yaptığınızda, hepsini rafa koymak yerine bazı yerel değişiklikleri seçebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.