如何使用Gitosis删除Git存储库


10

我正在使用Gitosis管理远程服务器上的一些Git存储库。由于我刚开始,所以会犯很多错误。这就是为什么现在我需要删除使用Gitosis创建的Git存储库。使用Gitosis是否有可能?我是否必须登录该机器并从那里进行操作?

Answers:


13

Gitosis本身没有删除功能,因为它是通过git commits管理的方式。如果您从中删除存储库gitosis.conf并提交更改,则将无法再访问该存储库。您可以稍后重新启用它,或者最终可以登录到服务器并从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

这也应该能成功推送,因此我test1gitosis.conf配置中删除该行并提交更改...然后尝试以下操作:

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存储库配置任何内容。如果尝试再次克隆存储库,则会收到相同的错误。


5
之后,您可以删除服务器上的物理存储库。登录,转到git的主目录,然后从那里转到“存储库”,您将拥有所有存储库的目录。删除您在gitosis.conf中禁用的那些。
尤金·拉祖金

2

您必须登录计算机并在此处删除存储库,然后还必须从gitosis配置文件中删除存储库。


0

杰里米·布斯(Jeremy Bouse)的回答是一个不错的策略,但实际上并没有删除该存储库。有时由于磁盘空间,安全性等原因,您可能特别需要删除该存储库。

因此,我建议使用Ultrafedde的方法,此外,您可能需要su删除设置的“ git”用户拥有的存储库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.