Một cái gì đó sai đang xảy ra với một trong các tệp trong kho git cục bộ của tôi. Khi tôi đang cố gắng thay đổi chi nhánh, nó nói:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Điều đó có nghĩa là gì?
Một cái gì đó sai đang xảy ra với một trong các tệp trong kho git cục bộ của tôi. Khi tôi đang cố gắng thay đổi chi nhánh, nó nói:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Điều đó có nghĩa là gì?
Câu trả lời:
Điều này có thể có nghĩa là một chương trình khác đang sử dụng tệp, điều này ngăn git "di chuyển" tệp vào hoặc ra khỏi thư mục làm việc khi bạn đang cố gắng thay đổi các nhánh.
Tôi đã có điều này xảy ra trên Windows Vista trong đó nhật thực là chương trình "sử dụng" tệp. Các tập tin có thể không thực sự mở trong nhật thực nhưng có thể đã được mở bởi một quá trình chạy bằng nhật thực.
Trong trường hợp này, hãy thử đóng tệp trong bất kỳ ứng dụng nào có thể đã sử dụng nó. Nếu điều đó không làm việc, hãy thoát hoàn toàn mọi ứng dụng có thể đã mở tệp.
GitKraken
bạn có thể nhận được điều này nếu bạn thực hiện các lệnh như rebase
Tôi đã có vấn đề này và giải quyết nó bằng lệnh: git gc
Lệnh trên loại bỏ temp và các tệp không cần thiết. (Người thu gom rác.)
git pull
bắt đầu git gc
tự động và gc đã cố gắng truy cập một số tệp .pack và .inx. Chúng được giữ bởi quá trình "windows git", git pull
lệnh sở hữu đó . Chạy git gc
thủ công và hơn - git pull
thực sự giải quyết vấn đề.
git gc
tôi lại gặp lỗi tương tự khi gc
đang tiến hành
giải pháp này từ đây làm việc cho tôi:
Đây là một câu trả lời cụ thể của Windows, vì vậy tôi biết rằng nó không liên quan đến bạn ... Tôi chỉ bao gồm nó vì lợi ích của những người tìm kiếm trong tương lai.
Trong trường hợp của tôi, đó là vì tôi đang chạy Git từ một dòng lệnh không nâng cao. "Chạy với tư cách quản trị viên" đã sửa nó cho tôi.
Ctrl+C
để chấm dứt danh sách rất dài các tệp không liên kết được; đã thoát gitbash, IDE của tôi và ứng dụng GitHub Windows; khởi động lại gitbash trong chế độ "Chạy với tư cách quản trị viên"; và chạy git gc --aggressive
. Mất một lúc để hoàn thành, nhưng không có lỗi.
Tôi gặp phải vấn đề này trong khi làm a git pull
.
Tôi cố gắng git gc
và nó giải quyết vấn đề của tôi.
Trong trường hợp của tôi không có quá trình chạm vào tập tin hoặc thư mục. Có thể nó xảy ra nếu đường dẫn rất dài, vì hạn chế hệ điều hành (windows). Hãy thử bật cờ hỗ trợ đường dài trong cấu hình git toàn cầu như được chỉ ra bên dưới:
git config --global core.longpaths true
hoặc cố gắng đặt cờ trả lời có / không nếu nó không mâu thuẫn với bạn
set GIT_ASK_YESNO=false
Nếu đường dẫn quá dài, tôi đã không tìm thấy giải pháp thành công.
GIT_ASK_YESNO
, không thể tìm thấy thông tin về cái này Nó đến từ đâu ?
core.longpaths
với bổ sung: thiết lập lại - gard prune gc đã làm việc cho tôi - nhưng phải đóng AndroidStudio để không gây rối với công cụ xây dựng của nó
Tôi cố gắng git gc
và nó giải quyết vấn đề của tôi.
Điều này có thể hữu ích cho một ai đó; nếu tất cả những điều trên không phù hợp với bạn, hãy làm theo các bước sau:
Đóng IDE của bạn (của tôi là Eclipse, không chắc nó có áp dụng cho Intellij và các ứng dụng khác không) hoặc bất kỳ ứng dụng nào khác có thể đang sử dụng git.
Mở git từ dòng lệnh (trong trường hợp của tôi, tôi đã có git bash) và chạy git gc
như được đề cập bởi những người khác.
Điều này đã làm điều kỳ diệu cho tôi.
Khi tôi đang sử dụng gitkraken và dấu nhắc lệnh, tôi gặp vấn đề tương tự. Và sau đó tôi chạy git gc
lệnh nó đã giải quyết vấn đề của tôi. Vì vậy, tôi rất vui và muốn chia sẻ một số điểm có thể hữu ích.
Có gì git gc
sẽ làm gì?
git gc
loại bỏ các đối tượng không thể truy cập có thể đã được tạo ra từ các lệnh git add trước đó.
Khi nào nên chạy git gc
?
Từ doc , người dùng được khuyến khích chạy tác vụ này một cách thường xuyên trong mỗi kho lưu trữ để duy trì việc sử dụng không gian đĩa tốt và hiệu suất hoạt động tốt.
Làm thế nào để làm cho nó tự động cấu hình?
Một số lệnh git có thể tự động chạy git gc; xem cờ --auto bên dưới để biết chi tiết. Nếu bạn biết những gì bạn đang làm và tất cả những gì bạn muốn là vô hiệu hóa hành vi này vĩnh viễn mà không cần cân nhắc thêm, chỉ cần làm
git config --global gc.auto 0
Tôi gặp vấn đề như vậy trên Windows 7 và hóa ra là do một số git.exe
quá trình mồ côi .
Để giải quyết nó, hãy mở Trình quản lý tác vụ và hủy tất cả các git.exe
quy trình.
Vì git
các lệnh có thời gian tồn tại ngắn, thông thường bạn sẽ không bao giờ thấy bất kỳ lệnh nào git.exe
trong Trình quản lý tác vụ. Khi chúng ở đó, điều đó thường có nghĩa là có gì đó không ổn và bạn nên giết các quy trình đó.
Trên Windows 8: Tôi đã chạy git gc và nó nói git gc đã chạy, tôi đã chạy git gc --force và trình thu gom rác đã chạy.
Sau đó tôi có thể chuyển nhánh và hợp nhất mà không gặp vấn đề gì, hãy thử git gc --force.
Có lẽ quá trình gc đã không dừng lại một cách duyên dáng vì lý do này hay lý do khác.
Tôi đã có vấn đề này với .tmp
các tập tin trong /.git/objects/pack
thư mục. Tôi nghĩ rằng một cái gì đó đã thất bại trong quá trình đẩy hoặc kéo, vì vậy tôi đã xóa các tệp tạm thời này và đặt lại ĐẦU TIÊN về cam kết cuối cùng của mình. Không chắc chắn nếu điều này được khuyên nhưng nó làm việc cho tôi. Cũng git count-objects -v
đưa cho tôi một danh sách các .tmp
tệp không thuộc về thư mục gói.
Hoặc để chặn các tin nhắn y / n trong windows git open cmd.exe
và chạy:
SETX GIT_ASK_YESNO false
xem tại đây: https://twitter.com/petercamfield/status/494805475733807104
git gc
, git count-objects -v
giúp xác định các đối tượng tạm thời còn sót lại trong pack
thư mục.
Tôi đã có thể giải quyết điều này bằng cách mở Powershell với tư cách Quản trị viên và từ đó
git checkout <branch_name>
Tôi đã đối mặt với vấn đề tương tự trong khi thực hiện 'git pull'. Tôi đã thử lệnh git vệ sinh thủ công 'git gc' và nó đã giải quyết vấn đề của tôi.
Sau khi chạy lệnh
git rm -rf foo.bar
Tôi thấy lỗi
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
Bởi vì một chương trình khác đang sử dụng tập tin này . Ví dụ: khi tôi chạy ứng dụng web Java trong mô hình gỡ lỗi hoặc chạy ứng dụng web trên máy chủ, tôi không thể xóa tệp nhật ký. Tắt sever ứng dụng (hoặc tắt quá trình gỡ lỗi), thử lại
git rm -rf foo.bar
Tôi thấy tập tin đã bị xóa.
Sau khi không có câu trả lời nào ở trên có vẻ hiệu quả, việc chạy git fetch -p
đã làm công việc cho tôi.
Tôi gặp vấn đề này trong Windows, bạn có thể muốn chạy git bash với tư cách quản trị viên và sau đó thực hiện các lệnh mong muốn, điều đó đã giải quyết vấn đề cho tôi.
Tôi đã thử từng mẹo trên trang này và không có gì giúp được. Tôi đã làm một git fetch
và git reset --hard origin/development
cho tôi một lỗi không tưởng. Tôi không thể thiết lập lại cam kết mới nhất.
Điều gì đã giúp là kiểm tra một chi nhánh khác và sau đó kiểm tra các chi nhánh trước đó. Rất lạ nhưng nó đã giải quyết được vấn đề.
Nếu bạn đang sử dụng Docker và chạy Windows 10, bạn có thể muốn dừng (các) thùng chứa nơi tệp có thể đang chạy. Để hiển thị trạng thái của các thùng chứa của bạn, hãy chạy
docker ps -a
Để ngăn chặn chúng, chỉ cần chạy
docker stop <container name or container id>
Điều này làm việc cho tôi khi tôi đang chạy các tệp cục bộ của mình bằng tệp .sh
Trên Windows, đã thấy lỗi này trên một git clone
repo (khá lớn). Đã đóng SmartGit và tạm dừng phần mềm sao lưu của tôi (CrashPlan) và sau đó nó đã hoạt động. Không chắc chắn ai trong số 2 người đã thực hiện thủ thuật này, nhưng nếu chạy một trong hai, điều này cũng có thể làm điều đó cho bạn.
Tôi gặp vấn đề tương tự trong khi thực hiện thao tác kéo git và như đã nêu ở trên, đó là do một chương trình đang giữ các tệp đó và không cho phép kéo git. Kết thúc chương trình đã giúp. Thông thường, IDE (như Eclipse) từ nơi các tệp đang được kiểm tra sẽ giữ nó ở chế độ nền. Đóng cùng và chạy lại git kéo giải quyết vấn đề cho tôi.
Tôi đã có lỗi tương tự và đóng ứng dụng mở tệp đã giải quyết nó. Tôi đã có thể quay lại và nhấn "Y"