尝试删除我的 .git 文件夹和 'rm -r .git --force' 无效

Trying to remove my .git folder and 'rm -r .git --force' is not working

rm -r .git
rm -r .git --force

我得到以下内容,并且在我进入 'yes' 并移动到下一个之后似乎有一个永无止境的供应。

override r--r--r--  redacted/staff for .git/objects/95/90087aa4b351e278e6e53ff6240045ab2db6d1?

分析解释:

当您尝试使用 rm 命令删除一个或多个已删除写入权限的文件时,在某些版本的 rm 命令中会看到消息 override r--r--r-- ...?

重现:

▶ mkdir -p foo/{bar,baz} ; touch foo/bar/qux 
▶ chmod -R -w foo 
▶ find foo -ls 
4305147410        0 dr-xr-xr-x    4 alexharvey       wheel                 128 24 Mar 18:19 foo
4305147412        0 dr-xr-xr-x    2 alexharvey       wheel                  64 24 Mar 18:19 foo/baz
4305147411        0 dr-xr-xr-x    3 alexharvey       wheel                  96 24 Mar 18:19 foo/bar
4305147413        0 -r--r--r--    1 alexharvey       wheel                   0 24 Mar 18:19 foo/bar/qux

现在,如果您尝试删除这些文件,系统会询问您是否真的要覆盖此文件模式:

▶ rm -r foo
override r-xr-xr-x  alexharvey/wheel for foo/baz? 

另请注意,如果您使用的是 Mac OS X 或其他 BSD 变体,似乎是这种情况,那么您通过添加错误地指定了 --force 参数到命令行的末尾,它将被解释为要删除的附加文件的名称。

但即使我更正了这一点,-f 仍然无法覆盖 r--r--r--。相反,您会看到:

▶ rm -rf foo       
rm: foo/baz: Permission denied
rm: foo/bar/qux: Permission denied
rm: foo/bar: Permission denied
rm: foo: Directory not empty

修正:

要解决此问题,首先恢复文件夹内的写入权限:

▶ chmod -R +w foo

那么 rm -r 应该可以正常工作:

▶ rm -r foo
▶ ls foo 
ls: foo: No such file or directory

另请参阅:

  • this Unix 和 Linux Stack Exchange 上的相关问题。
  • BSD rm 的源代码here

如果要删除git中的目录,只需登录sudo:

$ sudo rm -r file-name

rm -rf .folder 

不用花费额外的时间设置参数就可以解决问题