Git Checkout und Reset unter Windows zeigen gelegentlich, dass sich zufällige Dateien geändert haben

Wenn ich einen anderen Zweig auschecke oder zurücksetze, erhalte ich häufig von Windows die Fehlermeldung "Berechtigung verweigert" für ein bis ein Dutzend Dateien - die einzelnen Dateien variieren jedoch von Ausführung zu Ausführung. Hier ist die Ausgabe eines Tests, den ich gerade mit GIT_TRACE = 1 durchgeführt habe. Der Trace fügte nur die eine Zeile vor der Fehlermeldung hinzu:

$ 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"

Ich bin mir ziemlich sicher, dass dies ein Rennen mit einem Virenscanner oder einem anderen Indexdienst auf meinem Computer ist. Wenn das Rennen anhielt, könnte ich sysinternals benutzen, um zu sehen, welcher Prozess das Akte Handle geöffnet hat. Es geschieht jedoch sehr schnell und mir ist kein Tool bekannt, das mir diesen Konflikt aufzeigt. Überraschenderweise habe ich niemanden gefunden, der ein ähnliches Verhalten beschreibt. Wie kann ich diese Fehler stoppen oder das Problem weiter diagnostizieren?

Ich versuche, das Dateizugriffsrennen zu beenden, indem ich identifiziere, welcher Prozess den gleichzeitigen Zugriff ausführt. Vorschläge für ein Tool, das anzeigt, bei welchem ​​Prozess eine Datei gesperrt ist, wenn eine Bearbeitung verweigert wird, sind daher sehr hilfreich. Mir sind "Unlocker" und ähnliche Tools bekannt, die mir zeigen, welcher Prozess eine Datei für einen bestimmten Zeitraum gesperrt hält. Dies funktioniert bei diesem Problem nicht, da die Datei durch den Vorgang für einen sehr kurzen Zeitraum gesperrt bleibt. Daher muss das Tool die entsprechenden Daten ohne mein Eingreifen erfassen, da ich zu langsam bin.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage