我想删除 git 在我的 Windows 7 机器上创建的 git 存储库(.git 文件夹)。它说拒绝访问 .git/refs/header 文件夹。
我打开一个具有管理员角色的控制台,发出命令“takeown /F Headers /A /R”,它仍然显示“错误:访问被拒绝。”,我也不能通过 GUI 安全对话框进行操作。
有什么建议吗?
问候, 绿色
我想删除 git 在我的 Windows 7 机器上创建的 git 存储库(.git 文件夹)。它说拒绝访问 .git/refs/header 文件夹。
我打开一个具有管理员角色的控制台,发出命令“takeown /F Headers /A /R”,它仍然显示“错误:访问被拒绝。”,我也不能通过 GUI 安全对话框进行操作。
有什么建议吗?
问候, 绿色
拒绝访问错误可能意味着该文件正在被另一个进程使用,对于 GIT 存储库,这似乎比文件权限问题更有可能。
(我假设 GIT 就像 SVN 一样,其中存储库中的每个文件都是由您自己的具有标准权限的帐户创建的。如果不是这种情况,那么我可能是错的。)
第一步,以管理员身份运行Process Explorer并按 Ctrl-F 打开一个窗口,您可以在其中键入文件名并查看哪些进程(如果有)打开了该文件。
当我说“以管理员身份运行”时:
我不仅仅指以管理员身份登录时。Windows 7 的 UAC 意味着管理员帐户在默认情况下不运行具有完全管理员访问权限的东西。右键单击 procmon.exe 并选择“以管理员身份运行”选项。
我假设您已经通过以管理员身份运行命令提示符来熟悉这一点。如果您只是更改为管理员帐户,但没有在命令提示符下使用“以管理员身份运行”,那么这可能是 takeown 命令失败的原因。如果正确提升命令提示符,则窗口标题中应显示“管理员:”,除非 UAC 完全关闭。
如果列出了一个或多个进程,请确认列表中的完整文件路径(以防磁盘上的其他文件具有相似名称)。
关闭所有打开文件的进程。如果可以,请尝试正常关闭它们。作为最后的手段,你可以结束他们的任务。如果它是作为另一个用户/帐户运行的进程,它可能是您可以停止的服务。
(确保选中查看->显示所有用户的进程,然后通过 PID 列找到有问题的进程。如果您认为这是一项服务,请将鼠标悬停在它上面,将出现一个工具提示,告诉您任何它正在运行的服务。)
如果您找不到任何访问该文件的进程,或者将它们全部关闭仍会导致访问被拒绝错误,并且您肯定正在尝试从提升的命令提示符处删除,那么您可能想尝试告诉 Windows 下次删除该文件它被重新启动。您可以为此使用 SysInternals MoveFile工具。