Git stash pop- perlu digabungkan, tidak dapat menyegarkan indeks

116

Saya tidak bisa meletuskan simpanan saya karena saya menggabungkan cabang yang tampaknya bertentangan dengan simpanan saya dan sekarang simpanan saya sepertinya tidak bisa dimunculkan.

app.coffee: needs merge
unable to refresh index

Adakah yang tahu bagaimana menyelesaikan ini?

TETAP!

Ternyata masalah sebenarnya adalah konflik penggabungan yang belum terselesaikan dari penggabungan, BUKAN bahwa simpanan akan menyebabkan konflik penggabungan.

Resolusi: Lakukan file yang konflik.

RandallB
sumber
6
Sangat menarik bahwa jawaban yang diterima itu rumit sedangkan solusi sebenarnya cukup mudah: Anda bahkan tidak perlu memasukkan file yang konflik, tetapi menambahkannya.
Javi V
3
Tambahkan jawaban Anda sebagai jawaban bukan dalam pertanyaan.
Black

Jawaban:

67

Pertama, periksa git status.
Seperti yang disebutkan OP,

Masalah sebenarnya adalah konflik penggabungan yang belum terselesaikan dari penggabungan, BUKAN karena simpanan akan menyebabkan konflik penggabungan.

Di situlah git statusakan menyebutkan file itu sebagai " both modified"

Resolusi: Lakukan file yang konflik.


Anda dapat menemukan situasi serupa 4 hari yang lalu pada saat menulis jawaban ini (13 Maret 2012) dengan posting ini: " 'Penarikan tidak mungkin karena Anda memiliki file yang dipisahkan' ":

julita@yulys:~/GNOME/baobab/help/C$ git stash pop
help/C/scan-remote.page: needs merge
unable to refresh index

Apa yang Anda lakukan adalah memperbaiki konflik penggabungan (mengedit file yang benar, dan melakukannya):
Lihat " Bagaimana cara memperbaiki konflik penggabungan di Git? "

Apa yang dilakukan penulis entri blog itu adalah:

julita@yulys:~/GNOME/baobab/help/C$ git reset --hard origin/mallard-documentation
HEAD is now at ff2e1e2 Add more steps for optional information for scanning.

Yaitu membatalkan penggabungan saat ini sepenuhnya, memungkinkan git stash popuntuk diterapkan.
Lihat " Membatalkan penggabungan di Git ".

Itu adalah dua pilihan Anda.

VonC
sumber
1
Kadang juga terjadi kita di cabang lain. Misalnya, saya memiliki cabang A dan membuat beberapa perubahan dan beralih ke cabang B dan membuat perubahan dan mengkomitnya. Sekarang saya ingin pergi ke cabang A tetapi lupa untuk membayar di A dan mencoba menggunakan simpanan. Dalam hal ini, juga memberikan masalah yang sama. Saya menghadapi masalah ini dalam kasus di atas.
Kapil Verma
Saya melakukan segalanya kecuali 'git bash pop' mengembalikan konflik itu. Saya tidak mengerti mengapa saya harus tetap berkomitmen ketika saya tidak ingin membuat perubahan pada bach saat ini. Saya hanya ingin kembali ke cabang yang disimpan.
Philip Rego
@PhilipRego git bash pop? atau git stash pop? Coba lakukan pembayaran simpanan alih-alih menggunakan git simpanan: stackoverflow.com/a/16625128/6309
VonC
Sorry berarti 'git stash pop'. Saya sudah membuang simpanannya, tetapi saya akan mencobanya lain kali jika saya mengalami masalah ini. Terima kasih
Philip Rego
14

Saya mengalami masalah ini, kemudian menyelesaikan konflik dan melakukan, dan melakukannya git stash poplagi berarti memulihkan simpanan yang sama lagi (menyebabkan konflik yang sama :-().

Yang harus saya lakukan (PERINGATAN: cadangkan simpanan Anda terlebih dahulu) adalah git stash dropmembuangnya.

knocte
sumber
4
Itu baru saja menyingkirkan simpanan saya. Saya ingin kembali ke sana.
Philip Rego
3
Ini adalah jawaban yang saya butuhkan, tetapi bagi orang lain yang melihat ini, perubahan yang Anda simpan akan hilang. Ini berguna jika Anda mengalami masalah dengan simpanan pertama, tetapi benar-benar ingin menghapus simpanan pertama untuk menerapkan perubahan simpanan tingkat kedua yang lebih dalam.
Corey Schnedl
8

Ini jauh lebih sederhana daripada jawaban yang diterima. Kamu butuh:

  1. Periksa git statusdan pisahkan jalur di bawahnya. Perbaiki konfliknya. Anda dapat melewati langkah ini jika Anda ingin melakukannya nanti.

  2. Tambahkan semua file ini di bawah jalur yang tidak digabungkan untuk mengindeks menggunakan git add <filename>.

  3. Sekarang lakukan git stash pop. Jika Anda mendapatkan konflik, hal ini perlu diselesaikan lagi.

ayushgp
sumber
6
Ini mengarah pada konflik yang sama berulang kali.
NaN
7

Inilah cara saya memecahkan masalah:

  • status git (lihat campuran file dari simpanan sebelumnya, tarik, sembulan simpanan, dan pekerjaan lanjutan.)
  • git simpanan (lihat kebutuhan menggabungkan masalah)
  • git add. (tambahkan file sehingga pekerjaan saya secara lokal menyelesaikan penggabungan saya sendiri)
  • git simpanan (tidak ada kesalahan)
  • git pull (tidak ada kesalahan)
  • git stash pop (tidak ada kesalahan dan terus bekerja)
Adam
sumber
1
Terima kasih ! ini membantu saya.
Julien Baldy
1
Luar biasa, git add .tanpa melakukan perbaikan masalah untuk saya.
Paul Carlton
5

Jika ada yang mengalami masalah ini di luar penggabungan / konflik / tindakan, maka itu mungkin file kunci git untuk proyek Anda yang menyebabkan masalah.

git reset
     fatal: Unable to create '/PATH_TO_PROJECT/.git/index.lock': File exists.
rm -f /PATH_TO_PROJECT/.git/index.lock
git reset
git stash pop
StevieJayCee
sumber
1
Agak takut dengan resetperintah. Bisakah Anda menjelaskan mengapa ini akan berhasil?
SMBiggs
1

Saya telah menemukan bahwa solusi terbaik adalah mencabangkan simpanan Anda dan melakukan resolusi setelahnya.

git stash branch <branch-name>

jika Anda kehilangan simpanan Anda, Anda mungkin kehilangan perubahan dan Anda harus mengulang ke reflog tersebut.

Julian Tellez
sumber
1

Anda perlu menambahkan app.coffeepementasan.

Lakukan git add app.coffeedan kemudian Anda akan dapat menerapkan simpanan Anda (setelah itu komit dan dorong).

edvard_munch
sumber
0

Stash telah diterapkan ke file lain.

Anda hanya app.coffeeperlu menggabungkan secara manual. Setelah itu baru lari

git reset

untuk menghentikan perubahan dan terus meretas.

Vinodagouda Patil
sumber
0

Saya menghadapi masalah yang sama karena saya telah melakukan beberapa perubahan di cabang pengembangan saya dan kemudian ingin pergi ke cabang profil. jadi saya telah menyembunyikan perubahan tersebut

git stash

kemudian di cabang profil saya juga telah melakukan beberapa perubahan dan kemudian ingin kembali lagi ke pengembangan jadi saya harus menyimpan perubahan lagi dengan

 git stash

tetapi ketika saya datang untuk mengembangkan cabang dan mencoba untuk mendapatkan perubahan simpanan

git stash apply

jadi saya mendapatkan kesalahan perlu menggabungkan

untuk mengatasi masalah ini pertama-tama saya harus memeriksa daftar simpanan menurut

git stash list

jadi ini menunjukkan daftar simpanan dalam kasus saya ada 2 simpanan nama simpanan yang ditampilkan seperti simpanan ini @ {0}, simpanan @ {1}

Saya memerlukan perubahan dari stash @ {1} jadi ketika saya mencoba mendapatkannya dengan perintah ini

git stash apply stash@{1}

jadi mendapatkan kesalahan perlu digabung

jadi sekarang untuk mengatasi masalah ini periksa status file Anda

git status

jadi itu memberikan kesalahan bahwa "keduanya diubah" jadi untuk mengatasi proses ini

git add .

itu akan menambahkan file modifikasi yang hilang sekarang lagi memeriksa status

git status 

jadi sekarang tidak ada kesalahan sekarang dapat menerapkan simpanan

git stash apply stash@{1}

Anda dapat melakukan proses ini untuk sejumlah file simpanan.

Mudassir Khan
sumber