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?

Jesse Atkinson
sumber
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

Bob Gilmore
sumber
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
14
Karena versi 2.11 Anda dapat mengetik: git stash apply n
Dwhitz
Harap perbarui jawaban Anda, sekaranggit stash apply n
Hafiz Temuri
179

Anda harus keluar dari kawat gigi:

git stash pop stash@\{1\}
Vasiliy
sumber
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
VONC
sumber
5
Terima kasih! Ini mungkin jawaban yang paling relevan bagi siapa pun yang datang ke sini pada tahun 2019.
Aaron Frary
52

Di Windows Powershell saya menjalankan ini:

git stash apply "stash@{1}"
Robert Brooker
sumber
2
Bekerja di linux ubuntu juga
Bouke Versteegh
juga berfungsi pada Mac OS X. Saya suka ini lebih baik daripada melarikan diri karakter tunggal.
Félix Gagnon-Grenier
16

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

git stash pop stash@"{1}"
owenmck
sumber
12

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

git stash pop "stash@{0}"
Kenan
sumber
4

Saya telah menginstal 2,22 dan ini bekerja ..

git stash pop --index 1
markg
sumber
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}

manish kumar
sumber
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}
Jabbi Syed
sumber