如何保护实时服务器上的 git 存储库

M. *_*far 2 git

阅读互联网上的所有教程和文章。作为一个简单的工作流程,我知道我们可以在实时服务器上创建一个push存储库,并从本地存储库等对其进行更新。

我的问题和担忧是,由于实时服务器也将是一个 Git 存储库并且它会有该.git文件夹,这不会是一个安全问题吗?如何阻止访问呢?

更新

假设我在服务器上的实时文件夹是 /www,我可以从浏览器http://myserver.com访问它,这样我也可以访问http://myserver.com/.git/HEAD ??? 如何预防呢?

Mic*_*ior 5

您可能需要考虑将存储库和工作树分开。

例如,在 Web 服务器提供的文件夹之外的某个位置,运行git init --bare. 然后config将此目录中的文件替换为以下内容(其中/path/to/web/root是应放置文件的路径)。

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    worktree = /path/to/web/root
[receive]
    denycurrentbranch = ignore
Run Code Online (Sandbox Code Playgroud)

最后添加hooks/post-receive以下内容并标记为可执行

#!/bin/sh
git checkout -f
Run Code Online (Sandbox Code Playgroud)

现在,每当您推送到存储库时,文件都会被检出到正确的位置,您永远不必担心存储库意外被提供。