我正在使用 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。