我所看到的大多数提到的接收后挂钩都是在裸回购中设置的。这是为什么?
如果我只想推送到master
分支以部署到我的public_html
文件夹,并且我的所有推送都将进入带有后接收挂钩的裸仓库,那么就不会这样做。这意味着我的所有非master
推送都没有在任何地方的服务器上备份?
例如,假设我有上面提到的设置,我在我的服务器上设置了一个裸装回购,其中一个钩子部署到我的实时站点文件夹。我开发了一个月的新功能,不断推进功能分支。然后有一天(还没有推到掌握)我的本地机器崩溃/烧伤。我在该功能分支中的所有工作似乎都丢失了。人们在这种情况下做了什么?有一个钩子发送所有推送的回购?
答案 0 :(得分:1)
假设您的服务器不是您的本地计算机,您的服务器没有崩溃,并且您确实将开发分支推送到您的服务器,您的开发分支仍然在您的服务器上。它不会采用人类可读的格式,但您可以从服务器上的存储库中再次克隆,并检索所有分支,甚至是那些没有自动部署的分支。
这与裸露或非裸露的回购并非真正相关。后接收挂钩通常设置在裸存储库中的原因仅仅是因为通常只有裸存储器从客户端接收内容。可以设置一个非裸存储库来接收来自客户端的内容,但它比一般的价值更麻烦,因为如果当前签出的分支收到更新会导致问题