Bagaimana cara Git stash pop simpanan khusus di 1.8.3?


290

Saya baru saja meningkatkan Git. Saya menggunakan Git versi 1.8.3.

Pagi ini saya mencoba untuk melepaskan perubahan 1 jauh di tumpukan.

Saya berlari git stash pop stash@{1}dan mendapatkan kesalahan ini.

fatal: argumen ambigu 'stash @ 1': revisi tidak diketahui atau jalur tidak ada di pohon kerja. Gunakan '-' untuk memisahkan jalur dari revisi, seperti ini: 'git [...] - [...]'

Saya sudah mencoba sekitar 20+ variasi tentang ini dan juga menggunakan applybukannya poptidak berhasil. Apa yang berubah? Adakah yang menemukan ini?


2
Apakah Anda mencoba melarikan diri dari {}?
AlexDev

20
Dengan Git 2.11 (Q4 2016), Anda sekarang dapat menggunakan git stash pop 1: lihat jawaban saya di bawah ini
VonC

Jawaban:


359
git stash apply n

bekerja pada git versi 2.11

Jawaban asli, mungkin membantu men-debug masalah dengan sintaks lama yang melibatkan shell escapes:

Seperti yang disebutkan sebelumnya, kurung kurawal mungkin perlu keluar atau kutip tergantung pada OS Anda, shell, dll.

Lihat " simpanan @ {1} ambigu? " Untuk beberapa petunjuk terperinci tentang apa yang mungkin salah, dan bagaimana cara mengatasinya dalam berbagai kerangka dan platform.

git stash list
git stash apply stash@{n}

git simpanan menerapkan versi


15
Satu-satunya jawaban saya dengan jawaban ini adalah bahwa pertanyaannya menanyakan bagaimana cara popsimpanan tertentu dan perintah ini applyadalah simpanan daripada muncul. Perbedaannya adalah bahwa pop sama-sama menerapkan simpanan pada kode dan menghapus simpanan itu sendiri.
Berikan Humphries

Tidak bekerja untukku. Mendapatkan kesalahan "opsi tidak dikenal: -encodedCommand"
Yuvraj Patil


Harap perbarui jawaban Anda, sekaranggit stash apply n
Hafiz Temuri

179

Anda harus keluar dari kawat gigi:

git stash pop stash@\{1\}

78

Jika Anda ingin memastikan tidak harus berurusan dengan tanda kutip untuk sintaks stash@{x}, gunakan Git 2.11 (Q4 2016)

Lihat komit a56c8f5 (24 Okt 2016) oleh Aaron M Watson ( watsona4) .
(Digabung oleh Junio ​​C Hamano - gitster- dalam komit 9fa1f90 , 31 Okt 2016)

stash: izinkan simpanan untuk dirujuk oleh indeks saja

Alih-alih merujuk " stash@{n}" secara eksplisit, buat hanya referensi sebagai " n".
Sebagian besar pengguna hanya merujuk simpanan berdasarkan posisi mereka di tumpukan simpanan (yang saya sebut sebagai "indeks" di sini).

Sintaksis untuk simpanan khas ( stash@{n}) sedikit menjengkelkan dan mudah dilupakan, dan terkadang sulit untuk melarikan diri dengan benar dalam naskah .

Karena itu kemampuan untuk melakukan hal-hal dengan simpanan dengan hanya merujuk indeks diinginkan.

Begitu:

git stash drop 1
git stash pop 1
git stash apply 1
git stash show 1

5
Terima kasih! Ini mungkin jawaban yang paling relevan bagi siapa pun yang datang ke sini pada tahun 2019.
Aaron Frary


16

Seperti yang ditunjukkan Robert, tanda kutip mungkin bisa membantu Anda:

git stash pop stash@"{1}"

12

Jika tidak ada yang bekerja di atas, tanda kutip di sekitar simpanan itu sendiri mungkin cocok untuk Anda:

git stash pop "stash@{0}"

4

Saya telah menginstal 2,22 dan ini bekerja ..

git stash pop --index 1

Itu tidak berfungsi .. $ git simpanan pop --index 1 fatal: argumen ambigu '1': revisi yang tidak diketahui atau jalur yang tidak ada di pohon kerja. Gunakan '-' untuk memisahkan jalur dari revisi, seperti ini: 'git <command> [<revision> ...] - [<file> ...]'
Dave Doga Oz

2

Versi 2.11+ gunakan yang berikut ini:

git stash list

git stash apply n

n adalah nomor simpanan @ {12}


1

Pertama periksa daftar: -

git stash list

salin indeks yang ingin Anda pop dari daftar simpanan

git stash pop stash@{index_number}

misalnya.:

git stash pop stash@{1}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.