Kasowanie Git i resetowanie w systemie Windows czasami pokazuje, że zmieniły się losowe pliki

Często, gdy robię kasowanie innej gałęzi lub resetuję, otrzymam błędy „odmowa zezwolenia” z okien dla jednego do kilkunastu plików - ale poszczególne pliki różnią się w zależności od uruchomienia. Oto wynik testu, który właśnie wykonałem, z GIT_TRACE = 1. Ślad dodał tylko jeden wiersz przed komunikatem o błędzie:

$ git checkout master
trace: built-in: git 'checkout' 'master'
error: git checkout-index: unable to create file dotnet/src/myfile.cs (Permission denied)
D       dotnet/src/myfile.cs
Switched to branch "master"

Jestem prawie pewien, że to jakiś wyścig ze skanerem antywirusowym lub inną usługą indeksowania na moim komputerze. Jeśli wyścig trwał, mógłbym użyć sysinternals, aby zobaczyć, jaki proces ma otwarty plik. Jednak dzieje się to bardzo szybko i nie znam narzędzia, które pokaże mi ten konflikt. Co zaskakujące, nie znalazłem nikogo opisującego podobne zachowanie. Jak zatrzymać te błędy lub jeszcze bardziej zdiagnozować problem?

Szczególnie staram się zakończyć wyścig dostępu do plików, identyfikując proces, który wykonuje jednoczesny dostęp. Bardzo pomocne byłyby więc sugestie narzędzia, które pokazuje, który proces ma zablokowany plik, gdy edycja jest zabroniona. Zdaję sobie sprawę z „unlocker” i podobnych narzędzi, które pokażą mi, jaki proces przechowuje plik zablokowany na pewien czas. To nie działa w tym przypadku, ponieważ proces utrzymuje plik zablokowany na bardzo krótki okres. Narzędzie musi więc zebrać odpowiednie dane bez mojej interwencji, ponieważ jestem zbyt wolny.

questionAnswers(5)

yourAnswerToTheQuestion