【发布时间】:2017-08-24 05:18:33
【问题描述】:
不能简单地使用rm -r 删除git repo,因为.git 目录包含许多写保护文件。我有权限删除这些,因为我是所有者,但无法一一确认。
现在,可以通过将-f 标志添加到rm 来在一个命令中完成所有操作,但这意味着我失去了所有保护措施,无法删除有充分理由受保护的内容。例如,另一个带有我尚未推送的本地分支的 git 存储库。
但这似乎是唯一的方法,所以我发现自己最近经常做rm -rf,但我总是对此感到不安。有没有更好的方法来摆脱单个 repo 克隆,它不会询问数千个单独的文件,但如果我尝试擦除除单个 repo 之外的东西,会失败?理想情况下,它还应该在实际删除之前检查我尝试删除的 repo 是否有一些最新的远程。
我不太明白这个问题有什么不清楚的地方……就是这样:
我如何删除包含所有内容的存储库,使用的命令不会同时删除任何其他包含写保护文件的目录?
【问题讨论】:
-
不确定这样的东西是否已经存在,但大概一个shell脚本就足够了吗?
-
您所要求的逻辑相当多:“如果命令返回特定退出代码但不返回特定文件标识的某些子目录 (
.git),则删除目录”。这听起来像是您需要自己编写代码的东西。我承认;我没有看到您要解决的问题:在什么情况下您要删除存储库并且您不确定它们是否包含您可能不想删除的其他存储库? -
@larsks 我不会删除我不确定是否包含其他存储库的存储库,但我会删除位于同一目录中的存储库(或至少,在同一 unix 树中) 作为我想保留的其他东西。因此,虽然我从来没有打错任何路径,但确实没有问题,但我不想让它变得比必要的更容易。
标签: linux git file-permissions