2012-03-16 24 views
65

Tôi không thể bật stash của mình vì tôi đã hợp nhất một chi nhánh 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.Git stash pop- nhu cầu hợp nhất, không thể làm mới chỉ số

app.coffee: needs merge 
unable to refresh index 

Bất kỳ ai biết cách giải quyết vấn đề này?

CỐ ĐỊNH!

Biến vấn đề thực tế là xung đột hợp nhất chưa được giải quyết khỏi quá trình hợp nhất, NOT 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.

+3

Điều thú vị là câu trả lời được chấp nhận là _complex_ 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ó. –

Trả lời

40

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

Vấn đề thực tế là một kết hợp mâu thuẫn chưa được giải quyết từ việc hợp nhất, KHÔNG rằng stash sẽ gây ra một cuộc xung đột nhập.

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

Độ phân giải: Cam kết các tập tin mâu thuẫn.


Bạn có thể tìm thấy một tình huống tương tự 4 ngày trước (13 tháng 3 2012) với bài đăng này "‘Pull is not possible because you have unmerged files’"

[email protected]:~/GNOME/baobab/help/C$ git stash pop 
help/C/scan-remote.page: needs merge 
unable to refresh index 

Những gì bạn đã làm là để sửa chữa các cuộc xung đột nhập (chỉnh sửa bên phải tập tin, và cam kết nó):
Xem "How do I fix merge conflicts in Git?"

gì tác giả bài viết trên blog của đã làm được:

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

I. hủy bỏ hoàn toàn hợp nhất hiện tại, cho phép áp dụng git stash pop.
Xem "Aborting a merge in Git".

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

+1

Đô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. –

2

Nếu 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 
+0

Loại sợ lệnh 'đặt lại'. Bạn có thể giải thích lý do tại sao điều này sẽ làm việc? –

8

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

gì tôi phải làm là git stash drop để loại bỏ nó.

0

Đơ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úng 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ờ, hãy 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.

Các vấn đề liên quan