Không thể để Stit gash stash pop do xung đột


18

Tôi có một kho git cục bộ và đã có một vài tệp sửa đổi. Sau đó, tôi cần phải nhanh chóng tạo ra một bản sửa lỗi cho một cái gì đó để tôi

  • stash những thay đổi của tôi (git stash)
  • tập tin chỉnh sửa (tập tin vi)
  • cam kết (cam kết git)
  • popped stash (git stash pop)

Điều này dẫn đến Xung đột.

# 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

Nếu tôi cố gắng dọn dẹp các thay đổi và áp dụng lại stash, điều tương tự sẽ xảy ra (xung đột). Tôi không quan tâm nhiều đến trang / search.php, nhưng tôi muốn lấy các tệp khác ra khỏi stash.

Có cách nào để chuyển đổi stash thành một bản vá hoặc chỉ đơn giản là lấy các tệp như khi chúng được lưu trữ?

Câu trả lời:


19

Stash đã được áp dụng cho các tập tin khác; chỉ page/search.phplà bạn phải hợp nhất bằng tay. Sau đó, chỉ cần chạy git resetđể bỏ qua các thay đổi và tiếp tục hack - hoặc git add ...và cam kết.


Đúng. Chính xác. Sau khi tôi khôi phục bản vá với -p, tôi phát hiện ra rằng các tệp khác đã được cập nhật.
romaninsh

3
rất tốt, git stash popsau đó giải quyết xung đột của bạn sau git add xđó git resetđể đưa nó ra khỏi dàn dựng, Cảm ơn!
Quang

@Quang Nên có một stash pop --continuebí danh reset. :)
Kaz

12

Đã giải quyết với:

git stash show -p

Điều đó đã cứu ngày của tôi, =)
anatoly techtonik

-plàm gì ở đây không?
Joost

2
chỉ? -p? cái này làm gì "chương trình" có thể liên quan đến việc giải quyết xung đột như thế nào?
Arnold Roa

1
Lệnh này hiển thị các thay đổi được thực hiện trong ngăn chứa, cho phép bạn hợp nhất thủ công
Desmond Weindorf

1
Tôi đã tìm thấy git stash show -p | git apply && git stash droptừ coderwall.com/p/anxp0g/force-a-git-stash-pop và tôi đang cố gắng xác minh nó sẽ hoạt động trước khi tôi chạy nó. :-)
PatS

7

Sau khi ra git stash poplệnh, bạn phải giải quyết xung đột bằng tay sau đó thực hiện git stash dropthủ công như man git-stashgợi ý.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.