如何使用 Gitosis 删除 Git 仓库

如何使用 Gitosis 删除 Git 仓库

我正在使用 Gitosis 管理远程服务器上的一些 Git 存储库。由于我才刚刚开始使用它,所以犯了很多错误。这就是为什么我现在需要删除使用 Gitosis 创建的 Git 存储库。使用 Gitosis 可以做到这一点吗?还是我必须登录到该计算机并从那里执行此操作?

答案1

Gitosis 本身没有删除功能,因为它是通过 git 提交进行管理的。如果您从中删除存储库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

这也应该可以成功推送,因此我从配置test1中删除该行gitosis.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存储库配置任何内容。如果您尝试再次克隆存储库,您将收到相同的错误。

答案2

您必须登录到机器并在那里删除存储库,然后还必须从 gitosis 配置文件中删除存储库。

答案3

Jeremy Bouse 的答案是一个很好的策略,但实际上并没有删除存储库。有时,您可能因为磁盘空间、安全性等原因而特别需要删除存储库。

因此,我推荐 ultrafedde 的方法,另外您可能需要su删除您设置的“git”用户拥有的 repo。

相关内容