Git disimpan dua kali

96

Saya harus mengganti cabang git dengan cepat, jadi saya berlari git stash, tetapi saya harus menjalankannya lagi karena salah satu file saya perlu diedit.

Jadi saya sudah menjalankan git stashdua kali, dan saya siap untuk kembali mengedit file saya. Saya berlari git stash applytetapi saya tidak yakin bahwa semua file yang saya simpan tidak disimpan. Apakah ada sesuatu yang saya bisa lakukan? Ada cara untuk memeriksanya?

Saat saya berlari git stash show, saya hanya melihat sisa dari dua simpanan git saya.

Apakah ada cara untuk menampilkan semuanya git stashes?

stephenmurdoch.dll
sumber
4
git stash list. Jika Anda membuat dua simpanan, maka panggil git stash popdua kali.
Felix Kling
Hai, Anda sudah memperbaikinya! Anda harus meletakkannya sebagai jawaban. Terima kasih banyak
stephenmurdoch

Jawaban:

175

Anda bisa mendapatkan daftar semua simpanan dengan

git stash list

yang akan menunjukkan sesuatu seperti

stash@{0}: WIP on dev: 1f6f8bb Commit message A
stash@{1}: WIP on master: 50cf63b Commit message B

Jika Anda membuat dua simpanan, maka panggil saja git stash popdua kali. Sebagai lawan git stash apply, popterapkan dan hapus simpanan terbaru.

Anda juga dapat merujuk pada simpanan tertentu, misalnya

git stash show stash@{1}

atau

git stash apply stash@{1}
Felix Kling
sumber
Terima kasih banyak. Menyelamatkan hariku.
stephenmurdoch
25
Jika Anda ingin git stash popdua kali karena Anda ingin kedua simpanan dalam komit yang sama tetapi Anda mengalami kesalahan ": Perubahan lokal Anda ke file berikut akan ditimpa oleh penggabungan:" pada tanggal 2 git stash pop, Anda dapat: 1) git stash pop, 2) git add ., dan 3 ) git stash pop.
gabe
Ini membantu saya. Saya perlu melakukan "git stash" dan kemudian "git stash --all" untuk menyimpan beberapa file baru yang tidak terlacak. Melakukan git stash pop dua kali tidak berhasil. Saya hanya mendapatkan simpanan nanti kembali.
Leopold Kristjansson
0

Saya menemukan situasi ini, saya melakukan dua simpanan dan git simpanan pop baru saja melepaskan simpanan terakhir. Jadi saya lakukan

git stash list

git stash pop stash@{1}

Ini melepaskan simpanan pertama saya dan saya dapat melihat semua perubahan saya kembali!

Waaheeda
sumber
0

Anda mengajukan beberapa pertanyaan berbeda dalam postingan, dan responden lain memberikan jawaban yang baik untuk beberapa di antaranya. Salah satu yang tampaknya paling penting tetapi belum terjawab adalah ini:

>> Saya tidak yakin bahwa semua file yang saya simpan tidak disimpan. Apakah ada sesuatu yang saya bisa lakukan? Ada cara untuk memeriksanya?

Bandingkan simpanan dengan pohon lokal

Saya pikir apa yang ingin Anda lakukan adalah membandingkan simpanan dengan pohon kerja lokal Anda . Anda dapat meletakkan tombol -p pada perintah stash dan Anda baik:

git stash show -p

Jika ada yang Anda cari, cukup gunakan git stash name atau id dari daftar simpanan:

git stash show -p stash@{3}

Mungkin menggunakan diff?

Jika Anda benar-benar tertarik untuk mendorong keterampilan git Anda, Anda selalu bisa mencari perbedaan. Untuk melihat perbedaan antara apa yang ada di simpanan dan apa yang diperiksa ke HEAD di cabang master, diff berikut dapat digunakan:

git diff stash@ master

Perintah rapi lainnya untuk menunjukkan kepada Anda perubahan elemen dalam riwayat simpanan yang mungkin berguna adalah --stat:

git stash list --stat

Tapi menurut saya jawaban sederhana adalah jawaban yang benar. Cukup gunakan tombol -p dan Anda mungkin akan melihat apakah simpanan yang Anda simpan telah muncul kembali.

 git stash show -p stash@{3}
Cameron McKenzie
sumber