AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 397100
Accepted
icc97
icc97
Asked: 2012-06-09 17:03:45 +0800 CST2012-06-09 17:03:45 +0800 CST 2012-06-09 17:03:45 +0800 CST

plesk 虚拟主机中的多个 git repos

  • 772

每个 plesk vhost 只有一个用户访问该 httpdocs 目录。我想使用 Git 管理一大堆独立的虚拟主机。

这是否意味着为每个虚拟主机安装一个单独的 Git 存储库和一个单独的用户/ssh 公钥组合,或者有没有办法集中它?

Gitosis听起来可能有帮助 - 但我不确定它是否可以将文件推送到每个虚拟主机。

git
  • 1 1 个回答
  • 1750 Views

1 个回答

  • Voted
  1. Best Answer
    Peter Host
    2012-06-16T02:56:01+08:002012-06-16T02:56:01+08:00

    通常有两种方法来处理此类问题;

    1. httpdocs您有一个裸存储库,将您的应用程序集中在服务器上的某个位置,并且每个文件夹中都有一个该存储库的克隆(带有工作树)

      post-receive hook然后你在裸仓库上设置一个更新httpdocs这个仓库的所有克隆,通常一个 shell 脚本就足够了(并且可以设置权限并chmod根据你的用户进行全局操作)

      你在本地机器上有另一个存储库副本,它推送到bare服务器上的这个存储库,触发接收后挂钩,并更新httpdocs目录中的所有“子”存储库

    2. 你从(我会推荐的)中.git取出部分并在(创建它)文件夹中设置存储库httpdocs/private/home/git/myrepoworking treehttpdocs

      $ git --git-dir=/var/www/vhosts/newdomain.tld/private/home/git/newdomain.tld \
      --work-tree=/var/www/vhosts/newdomain.tld/httpdocs   init  &&  \
      echo "gitdir: /var/www/vhosts/newdomain.tld/private/home/git/newdomain.tld" \
      > /var/www/vhosts/newdomain.tld/httpdocs/.git
      

      这样,您httpdocs的版本控制信息仍然相对干净(除了在 中创建的.gitFILE(不是目录) ,这只是将与 的位置进行/var/www/vhosts/newdomain.tld/httpdocs/符号链接的 GIT 方式)working treeGITDIR

      其余过程相同:裸存储库、接收后挂钩

    我个人放弃了 Gitosis、gitolite 和 palls,因为它对于几个存储库来说开销太大了。只需正确设置远程分支和 shell 脚本即可(由接收后挂钩启动)

    更多关于hookgithooks (5)联机帮助页

    • 3

相关问题

  • 如何使用 Gitosis 删除 Git 存储库

  • Git 和 Mercurial

  • 如何修复 git 中第一次提交的元信息?

  • 如何编辑 git 的历史记录以更正不正确的电子邮件地址/名称 [关闭]

  • git如何控制访问权限

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve