Saya menyembunyikan beberapa perubahan lokal sebelum melakukan penggabungan yang rumit, melakukan penggabungan, kemudian dengan bodoh lupa untuk melakukan sebelum menjalankan git stash pop
. Pop menciptakan beberapa masalah (metode buruk memanggil basis kode besar) yang terbukti sulit dilacak. Saya berlari git stash show
, jadi saya setidaknya tahu file mana yang diubah. Jika tidak ada yang lain, saya kira ini adalah pelajaran untuk melakukan lebih banyak.
Pertanyaan saya: apakah mungkin untuk membatalkan tumpukan simpanan tanpa juga membatalkan penggabungan?
git stash pop
tanpa melakukan terlebih dahulu. Apa yang Anda lakukan untuk mencapainya?git stash pop
setelah melakukan perubahan (saya tidak melakukan meskipun) dengan git versi 2.25.0.windows.1stash pop/apply
sebelum membuat komit, Anda bisa memecatgit fsck --lost-found
. Perintah ini akan beralih melalui gumpalan menggantung (file aktual untuk mereka yang tidak terbiasa dengan terminologi git) yang dipentaskan tetapi tidak dilakukan di mana saja (karena itu menggantung), dan meletakkannya di bawah direktori .git / hilang-ditemukan / , di mana Anda dapatgit show
melihatnya dan melihat apakah ini file yang Anda cari.Jawaban:
Coba gunakan Bagaimana memulihkan simpanan jatuh di Git? untuk menemukan simpanan Anda muncul. Saya pikir selalu ada dua komit untuk simpanan, karena menyimpan indeks dan copy pekerjaan (sehingga sering komit indeks akan kosong). Kemudian
git show
mereka melihat diff dan gunakanpatch -R
untuk membatalkan permohonan mereka.sumber
git fsck --no-reflog | awk '/dangling commit/ {print $3}'
(dari tautan), dan saya hanya menemukan secara manual masalah dari diff itu. Terima kasih!git diff -p ${STACH_SHA1}~1 ${STASH_SHA1} | patch -R -p1
; Saya mencoba dengan yanggit show
disarankan tetapi hasilnya tidak baik untuk patch; juga saya harus memberikan-p1
opsi untuk menambal untuk menghapusa/..
danb/..
elemen yanggit diff
diletakkan di depan file kalau tidak itu tidak akan menyelesaikan jalur dari root repositori. SARAN: hati-hati dan lakukan kekacauan di cabang terpisah sebelum bermain dengan patch.stash pop
danstash push
akan memicu komit yang akan menyimpan perubahan ke indeks dan direktori kerja, kan?Dari
git stash --help
Ini membantu saya lebih baik daripada jawaban yang diterima dengan skenario yang sama.
sumber
Jika penggabungan Anda tidak terlalu rumit, pilihan lain adalah:
Setelah itu Anda hanya memiliki perubahan dari simpanan yang Anda jatuhkan terlalu dini.
sumber