如何用Gitosis删除Git仓库

我正在使用Gitosis来pipe理远程服务器上的一些Git存储库。 由于我一开始就犯了很多错误。 这就是为什么现在我需要删除我用Gitosis创build的Git仓库。 这可能使用Gitosis或我必须login到该机器,并从那里做?

Gitosis本身并没有删除function,因为它通过git提交进行pipe理。 如果您从gitosis.conf移除存储库并提交更改,则不再可以访问存储库。 您可以稍后重新启用它,也可以最终login到服务器并从gitosis repositories/目录中删除该文件。

我克隆了我的gitosis-admin.git版本库,并添加了以下内容:

 [group gitosis-admin] writable = gitosis-admin test1 members = jbouse 

然后我去了我的主目录,并执行以下操作:

 mkdir test1 cd test1 git init git remote add origin git@server:test1.git echo "Testing" > test.txt git add test.txt git commit -m 'First commit' git push origin master:refs/heads/master 

这应该成功推送到服务器,然后我擦掉test1目录,并从gitosis克隆它:

 git clone git@server:test1.git cd test1 echo "Test worked" > test.txt git add test.txt git commit -m 'Second commit' git push 

这也应该推成功,所以我然后从gitosis.confconfiguration中删除test1行并提交更改…然后我尝试以下:

 cd test1 echo "Final test" > test.txt git add test.txt git commit -m 'Third commit' git push 

不像前面的两个推这个失败,出现以下错误消息:

 ERROR:gitosis.serve.main:Repository read access denied fatal: The remote end hung up unexpectedly 

这个错误是因为gitosis没有为test1版本库configuration任何东西。 如果您尝试再次克隆存储库,则会收到相同的错误。

您必须login到机器并删除存储库,然后您也必须从gitosisconfiguration文件中删除存储库。

Jeremy Bouse的回答是一个很好的策略,但实际上并没有删除回购。 有时你可能会特别需要删除磁盘空间,安全等回购。

所以我会推荐ultrafedde的方法,除此之外,你可能需要su来删除你设置的“git”用户所拥有的repo。