Tidak dapat "git stash pop" karena konflik

19

Saya memiliki repositori git lokal dan memiliki beberapa file yang dimodifikasi. Maka saya perlu dengan cepat menghasilkan perbaikan untuk sesuatu jadi saya

  • menyembunyikan perubahan saya (git simpanan)
  • file yang diedit (vi file)
  • berkomitmen (git commit)
  • popped stash (git stash pop)

Ini menghasilkan Konflik.

# On branch master
$ git stash pop
Auto-merging page/search.php
CONFLICT (content): Merge conflict in page/search.php
$ git status
# On branch master
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      page/search.php

Jika saya mencoba untuk membersihkan perubahan dan menerapkan kembali simpanan, hal yang sama terjadi (konflik). Saya tidak terlalu peduli dengan halaman / search.php, tapi saya ingin mengeluarkan file lain dari simpanan.

Apakah ada cara untuk mengubah simpanan menjadi tambalan atau sekadar mendapatkan file seperti ketika disimpan?

romaninsh
sumber

Jawaban:

20

Stash telah diterapkan ke file lain; hanya page/search.phpAnda yang harus menggabungkan secara manual. Setelah itu jalankan saja git resetunstage perubahan dan terus peretasan - atau git add ...dan komit.

pengguna1686
sumber
Iya. Persis. Setelah saya memulihkan tambalan dengan -p, saya menemukan bahwa file lain sudah diperbarui.
romaninsh
3
sangat bagus, git stash pop, menyelesaikan konflik Anda maka git add xkemudian git resetuntuk mendapatkannya keluar dari pementasan, Terima kasih!
Quang
@ Quang Harus ada stash pop --continueyang alias reset. :)
Kaz
12

Diselesaikan dengan:

git stash show -p
romaninsh
sumber
Itu menyelamatkan hari saya, =)
anatoly techtonik
Apakah ada yang -pdilakukan di sini?
Joost
2
menunjukkan? p apa ini? bagaimana "pertunjukan" dapat dikaitkan untuk menyelesaikan konflik?
Arnold Roa
2
Perintah ini menunjukkan perubahan yang dibuat di simpanan, yang memungkinkan Anda untuk menggabungkan secara manual
Desmond Weindorf
1
Saya menemukan git stash show -p | git apply && git stash dropdari coderwall.com/p/anxp0g/force-a-git-stash-pop , dan saya mencoba memverifikasi itu akan berfungsi sebelum saya menjalankannya. :-)
PatS
7

Setelah git stash popperintah, Anda kemudian harus menyelesaikan konflik dengan tangan kemudian lakukan git stash dropsecara manual seperti yang man git-stashdisarankan.

Westoque
sumber