Câu hỏi Git stash pop- nhu cầu hợp nhất, không thể làm mới chỉ mục


Tôi không thể bật stash của tôi bởi vì tôi đã sáp nhập một chi nhánh mà rõ ràng xung đột với stash của tôi và bây giờ stash của tôi dường như không thể xuất hiện.

app.coffee: needs merge
unable to refresh index

Bất cứ ai biết làm thế nào để giải quyết này?

ĐÃ SỬA!

Hóa ra vấn đề thực tế là xung đột hợp nhất chưa được giải quyết từ quá trình hợp nhất, KHÔNG PHẢI rằng stash sẽ gây ra xung đột hợp nhất.

Độ phân giải: Cam kết tệp bị xung đột.


76
2018-03-16 14:43


gốc


Điều thú vị là câu trả lời được chấp nhận là phức tạp trong khi giải pháp thực tế khá dễ dàng: bạn thậm chí không cần phải cam kết tệp bị xung đột, nhưng thêm nó. - Javi V
Thêm câu trả lời của bạn dưới dạng câu trả lời không có trong câu hỏi. - Black


Các câu trả lời:


Trước tiên, hãy kiểm tra git status.
Như OP đề cập,

Vấn đề thực tế là xung đột hợp nhất chưa được giải quyết từ quá trình hợp nhất, KHÔNG phải là dấu gạch ngang sẽ gây ra xung đột hợp nhất.

Đó là nơi mà git status sẽ đề cập đến tập tin đó như là "both modified"

Độ phân giải: Cam kết tệp bị xung đột.


Bạn có thể tìm thấy tình huống tương tự 4 ngày trước tại thời điểm viết câu trả lời này (Ngày 13 tháng 3 năm 2012) với bài đăng này: "Không thể kéo 'vì bạn có tệp chưa được lọc'":

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

Việc bạn đã làm là khắc phục xung đột hợp nhất (chỉnh sửa đúng tệp và cam kết):
Xem "Làm cách nào để khắc phục xung đột hợp nhất trong Git?"

Tác giả của bài đăng trên blog đã làm gì:

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.

I.e hủy bỏ hợp nhất hiện tại hoàn toàn, cho phép git stash pop được áp dụng.
Xem "Hủy hợp nhất trong Git".

Đó là hai lựa chọn của bạn.


46
2018-03-17 11:52



Đôi khi nó cũng xảy ra chúng ta đang ở trong một chi nhánh khác. Ví dụ, tôi có nhánh A và thực hiện một số thay đổi và chuyển sang nhánh B và thực hiện các thay đổi và cam kết chúng. Bây giờ tôi muốn đi chi nhánh A nhưng quên thanh toán trên A và cố gắng áp dụng stash. Trong trường hợp này, nó cũng cho cùng một vấn đề. Tôi phải đối mặt với vấn đề này trong trường hợp trên. - Kapil Verma


Tôi đã gặp vấn đề này, sau đó giải quyết xung đột và cam kết và thực hiện git stash pop một lần nữa đã khôi phục lại cùng một stash một lần nữa (gây ra cùng một xung đột :-().

Những gì tôi phải làm là git stash drop để thoát khỏi nó.


11
2018-04-12 09:56





Nó đơn giản hơn nhiều so với câu trả lời được chấp nhận. Bạn cần phải:

  1. Kiểm tra git status và đường dẫn chưa được nhấn chìm bên dưới. Khắc phục xung đột. Bạn có thể bỏ qua bước này nếu bạn muốn thực hiện sau.

  2. Thêm tất cả các tệp này trong đường dẫn chưa được lập chỉ mục để sử dụng chỉ mục git add <filename>.

  3. Bây giờ làm git stash pop. Nếu bạn nhận được bất kỳ xung đột nào, những điều này một lần nữa sẽ cần được giải quyết.


4
2018-02-22 10:56



Điều này dẫn đến cùng một cuộc xung đột lặp đi lặp lại. - NaN


Nếu có bất kỳ ai gặp sự cố này bên ngoài hợp nhất / xung đột / hành động, thì đó có thể là tệp khóa git cho dự án của bạn gây ra sự cố.

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

2
2018-02-25 09:15



Loại sợ reset chỉ huy. Bạn có thể giải thích lý do tại sao điều này sẽ làm việc? - Scott Biggs


Tôi đã thấy rằng giải pháp tốt nhất là tách nhánh của bạn ra và làm một giải pháp sau đó.

git stash branch <branch-name>

nếu bạn thả rõ ràng stash của bạn, bạn có thể mất các thay đổi của bạn và bạn sẽ phải tái diễn để reflog.


0
2018-06-11 12:08