Çakışma nedeniyle “git stash pop” yapılamıyor


19

Yerel git depom var ve birkaç değiştirilmiş dosya vardı. Sonra bir şey için hızlıca bir düzeltme yapmam gerekiyordu, bu yüzden

  • değişikliklerimi sakladım (git stash)
  • düzenlenmiş dosya (vi dosyası)
  • taahhütlü
  • atmış zulası (git zulası pop)

Bu Çatışma ile sonuçlandı.

# 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

Değişiklikleri temizlemeye ve saklamayı tekrar uygulamaya çalışırsam aynı şey olur (çakışma). Sayfa / search.php hakkında pek umurumda değil, ancak diğer dosyaları saklamak istiyorum.

Zulayı bir yamaya dönüştürmenin veya dosyaları saklandığında olduğu gibi almanın bir yolu var mı?

Yanıtlar:


20

Stash zaten diğer dosyalara uygulanmış; sadece page/search.phpmanuel olarak birleştirmeniz gerekir. Daha sonra git resetdeğişiklikleri bozmak ve hacklemeye devam etmek için çalıştırın - veya git add ...ve taahhüt edin.


Evet. Kesinlikle. -P ile yamayı kurtardıktan sonra, diğer dosyaların zaten güncellendiğini öğrendim.
romaninsh

3
çok güzel, git stash popardından da çatışmaları çözmek git add xsonra git reset, sahneleme Teşekkür dışarı almak için!
Quang

@Quang Bir stash pop --continuetakma ad olmalı reset. :)
Kaz

12

Şununla çözüldü:

git stash show -p

Bu günümü kurtardı, =)
anatoly techtonik

-pBurada bir şey yapar mı ?
Joost

2
göstermek? -p? bu ne yapar? çatışmaları çözmek için "gösteri" nasıl olabilir?
Arnold Roa

2
Bu komut, depoda yapılan değişiklikleri gösterir ve manuel olarak birleştirmenizi sağlar
Desmond Weindorf

1
Bulduğum git stash show -p | git apply && git stash dropgelen coderwall.com/p/anxp0g/force-a-git-stash-pop ve ben çalıştırmadan önce işe yarayacak doğrulamak için çalışıyorum. :-)
PatS

7

Komuttan git stash popsonra, çatışmayı elle çözmeniz git stash dropve man git-stashönerileri manuel olarak yapmanız gerekir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.