Saya sangat tidak terbiasa dengan shelve
aspek Git. Jika stash
digunakan untuk mengesampingkan pekerjaan yang belum selesai lalu apa shelve
? Untuk apa Anda menggunakannya?
Misalnya pada Proyek Pembaruan (dari menu VCS)
satu akan mendapatkan (dalam Ide 2019.2)
git
intellij-idea
jetbrains-ide
Edgar Martinez
sumber
sumber
shelve
bukan perintah git. Apa konteks dari pertanyaan ini, dari mana istilah-istilah ini berasal?shelve
ada di beberapa alat lain tetapi itu bukan bagian dari git.shelve
dalam bzr, hg, dll. Apakah Anda mengacu pada beberapa paket interoperabilitas git?Jawaban:
git shelve
tidak ada di Git.Hanya
git stash
:Anda memiliki rak proyek lama 2008 untuk mengisolasi modifikasi di cabang, tetapi itu tidak akan sangat berguna saat ini.
Seperti yang didokumentasikan dalam dialog rak Intellij IDEA , fitur " rak dan unshelving " tidak terkait dengan VCS (alat Sistem Kontrol Versi) tetapi dengan IDE itu sendiri, untuk menyimpan sementara perubahan yang belum Anda lakukan di daftar perubahan.
Perhatikan bahwa sejak Git 2.13 (Q2 2017), Anda sekarang dapat menyimpan file individual juga .
sumber
git stash && <your actual command> && git stash pop
tetapi itu menyebalkan. Rak otomatis dan lamar lebih dekat dengan apa yang kita butuhkan.Saat menggunakan JetBrains IDE's dengan Git, "aksi simpanan dan pencopotan didukung selain rak dan pelepasan. Fitur-fitur ini memiliki banyak kesamaan; perbedaan utama adalah dalam cara patch dibuat dan diterapkan. Shelve dapat beroperasi dengan file atau kumpulan individual file, sementara Stash hanya dapat beroperasi dengan sejumlah file yang diubah sekaligus. Berikut adalah beberapa rincian lebih lanjut tentang perbedaan di antara mereka. "
sumber
git stash -p
yang mengalahkan keduanya. Sayangnya hanya di baris perintah.Selain jawaban sebelumnya ada satu hal yang penting untuk saya perhatikan:
shelve
adalah fitur produk JetBrains (sepertiWebStorm
,PhpStorm
,PyCharm
, dll). Ini menempatkan file yang disimpan ke dalam.idea/shelf
direktori.stash
adalah salah satugit
opsi. Ini menempatkan file simpanan di bawah.git
direktori.sumber
Saya lebih suka menyimpan perubahan daripada menyembunyikannya jika saya tidak membagikan perubahan saya di tempat lain.
Stashing adalah fitur git dan tidak memberi Anda opsi untuk memilih file tertentu atau perubahan di dalam file. Shelving dapat melakukan itu tetapi ini adalah fitur khusus IDE, bukan fitur git:
Seperti yang Anda lihat, saya dapat memilih untuk menentukan file / baris mana yang akan dimasukkan di rak saya. Perhatikan bahwa saya tidak dapat melakukannya dengan menyembunyikan.
Hati-hati menggunakan rak di IDE dapat membatasi portabilitas tambalan Anda karena perubahan itu tidak disimpan dalam folder .git.
Beberapa tautan bermanfaat:
sumber