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

标签 git

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

我的问题和担忧是,由于实时服务器也将是一个 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/

相关文章:

linux - 如何修复被视为未跟踪的 git 跟踪文件?

git - linters 配置文件应该在 .gitignore 中吗?

linux - 无法安装git

git - 在 git 上 merge 一个主题分支,删除所有主题分支的提交历史?

linux - 我想在后台进程中使用 pos-receive 自动化我的 Angular 构建

java - 管理分支机构中的不同客户代码

Git 使用 HTTPS 访问私有(private)仓库

git - 为什么本地git显示的分支比服务器多

git - 维护一个与上游同步的分支

macos - (Mac) -bash : __git_ps1: command not found