阅读互联网上的所有教程和文章。作为一个简单的工作流程,我知道我们可以在实时服务器上创建一个裸存储库,并从本地存储库等推送
更新到它。
我的问题和担忧是,由于实时服务器也将是一个 Git 存储库,并且它会有 .git
文件夹,这不会是一个安全问题吗?如何防止访问它?
更新
假设我在服务器上的事件文件夹是/www,我可以从浏览器访问它http://myserver.com这样我也可以访问http://myserver.com/.git/HEAD ???如何预防?
最佳答案
您可能需要考虑将存储库和工作树分开。
例如,在 Web 服务器提供的文件夹之外的某个位置运行 git init --bare
。然后将此目录中的 config
文件替换为以下内容(其中 /path/to/web/root
是应放置文件的路径)。
[core]
repositoryformatversion = 0
filemode = true
bare = false
worktree = /path/to/web/root
[receive]
denycurrentbranch = ignore
最后添加包含以下内容的hooks/post-receive
并将其标记为可执行
#!/bin/sh
git checkout -f
现在,每当您推送到存储库时,文件都会被 check out 到正确的位置,您永远不必担心存储库意外被提供。
关于git - 如何保护实时服务器上的 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13538226/