Điều đó thường có nghĩa là một quy trình vẫn đang sử dụng tệp cụ thể đó (vẫn có phần xử lý trên đó)
(trên Windows, ProcessExplorer
rất tốt để theo dõi loại quy trình đó)
Hãy thử đóng các chương trình khác của bạn và thử lại git pull
.
Lưu ý rằng bạn có một thay thế với GIT_ASK_YESNO
biến .
Cập nhật tháng 1 năm 2019:
Điều đó thậm chí còn được sửa chữa nhiều hơn, với Git 2.21 (Q1 2019), vì " git gc
" và " git repack
" không đóng các gói đóng mở mà họ thấy không cần thiết trước khi xóa chúng, không hoạt động trên nền tảng không có khả năng xóa tệp đang mở.
Điều này đã được sửa chữa.
Xem cam kết 5bdece0 (15 tháng 12 năm 2018) của tác giả Julian Schindelin ( dscho
) .
(Được hợp nhất bởi Junio C Hamano - gitster
- trong cam kết 5104f8f , ngày 18 tháng 1 năm 2019)
gc
/ repack
: phát hành gói khi cần
Trên Windows, các tệp không thể bị xóa hoặc đổi tên nếu vẫn có các thẻ được xử lý theo quy trình.
Để khắc phục điều đó, chúng tôi đã giới thiệu close_all_packs()
chức năng.
Trước đó, chúng tôi đã đảm bảo rằng các gói được phát hành ngay trước khi git gc
được sinh ra, trong trường hợp gc
muốn loại bỏ các gói không còn cần thiết.
Nhưng nhà phát triển này quên rằng gc
bản thân họ cũng cần phải bỏ các gói, ví dụ như khi hợp nhất tất cả các gói thông qua --aggressive
tùy chọn.
Tương tự như vậy, git repack -d
muốn xóa các gói lỗi thời và do đó cũng cần phải đóng tất cả các tay cầm gói.
Cập nhật tháng 1 năm 2016
Điều đó nên được sửa trong Git 2.8 (tháng 3 năm 2016) (và xem Git 2.19, quý 3 năm 2018 bên dưới)
Xem cam kết d562102 , cam kết dcacb1b , cam kết df617b5 , cam kết 0898c96 (ngày 13 tháng 1 năm 2016) của tác giả Julian Schindelin ( dscho
) .
(Được hợp nhất bởi Junio C Hamano - gitster
- trong cam kết 3c80940 , ngày 26 tháng 1 năm 2016)
fetch
: phát hành tệp gói trước khi thu gom rác
Trước khi tự động gc'ing, chúng tôi cần đảm bảo rằng các tệp gói được phát hành trong trường hợp chúng cần được đóng gói lại và thu gom rác.
Nhiều loại tiền mã hóa chạy " gc --auto
" trước khi thoát các packfiles được ánh xạ và để các mô tả tệp cho chúng mở, không thân thiện với các hệ thống không thể xóa các tệp đang mở.
Bây giờ họ đóng các gói trước khi làm như vậy.
Khắc phục sự cố git-for-widows
500 .
Nhìn vào thử nghiệm được sử dụng để xác nhận cách tiếp cận mới đó , một cách giải quyết khả thi (vì Git 2.8 chưa được đưa ra) sẽ được nâng lên một cách giả tạo gc.autoPackLimit
.
git config gc.autoPackLimit 10000
git fetch
git config gc.autoPackLimit 50 # default value
git 2.8.4 (tháng 6 năm 2016) không đề cập đến vấn đề 755 , điều này cũng sẽ làm giảm bớt vấn đề ( cam kết 2db0641 ):
Đảm bảo rằng các tệp xử lý tạm thời không được kế thừa bởi các tiến trình con
Trên thực tế, git-for-windows
vấn đề 500 được đề cập ở trên thực sự đã được khắc phục với Git 2.19, Q3 2018.
Xem " Git - Hủy liên kết tệp .idx
và .pack
không thành công (Quá trình duy nhất sở hữu xử lý tệp này là git.exe
) "