2012-11-21 32 views
5

Tôi muốn chuyển nhánh. nhưng gặp lỗiKhông thể chuyển nhánh git: "Tập tin chưa được xếp" nhưng thư mục làm việc sạch

error: Untracked working tree file 'foo.phtml' would be overwritten by merge. 

Nếu tôi xóa tệp này, tệp tiếp theo bị khiếu nại. Vấn đề là có một sự khác biệt rất lớn của các tập tin trong hai chi nhánh.

Đây là những gì tôi đã cố gắng:

$ git reset --hard HEAD 
HEAD is now at 8a2a95c Initial checkin 
$ git checkout otherbranch 
error: Untracked working tree file 'foo.phtml' would be overwritten by merge. 
$ git status 
# On branch master 
# Your branch and 'origin/master' have diverged, 
# and have 1 and 677 different commit(s) each, respectively. 
# 
nothing to commit (working directory clean) 

là gì sai ở đây?

Tôi cũng đã cố gắng

git clean -f -d 

Trả lời

4

Bạn đối mặt với những vấn đề mà các chi nhánh bạn muốn kiểm tra có chứa nhiều file như foo.phtml mà không được theo dõi trong ngành hiện tại của bạn. Dường như bạn chỉ có thể xóa các tập tin, vì vậy hãy thử:

git checkout -f otherbranch 
+0

Đồng nghiệp của tôi phát hiện ra trong cùng một thời điểm :-) Phần thú vị là, tại sao trạng thái git hiển thị một thư mục làm việc sạch. – Alex

+1

Nếu nó không hiển thị các tập tin không được theo dõi, '.gitignore' của bạn có thể ghi đè lên chúng. – mavam

4

Chỉ trong trường hợp bạn không quan tâm đến các tập tin sau, sử dụng

git stash -u 

rằng sẽ làm sạch thư mục làm việc của bạn, nhưng trong trường hợp bạn bị mất một cái gì đó, bạn có thể lấy lại nó từ stash. Bây giờ bạn có thể tiếp tục và thanh toán chi nhánh khác của bạn.

Kịch bản khác là các tệp bị bỏ qua trong một nhánh và không bị bỏ qua ở một nhánh khác. Trong trường hợp này, bạn nên theo dõi lệnh stash (nếu trạng thái git hiển thị một cái gì đó được thay đổi) với git checkout -f theotherbranch.

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