V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kajweb
V2EX  ›  问与答

git 自动部署方案与 git remote 的问题

  •  
  •   kajweb · 2020-09-20 03:04:55 +08:00 · 550 次点击
    这是一个创建于 1327 天前的主题,其中的信息可能已经有所发展或是发生改变。

    hexo 博客,源码和生成页面分为 A 、B 两个仓库

    定义本本机为 C,服务器为 S

    已知两个博客已经配置好 githook 和实现了自动 pull 。

    目前工作流是 C push 到 gitee 后,S 收到 githook 自动分别 pullA 、B 仓库

    现在想改为由 C push A 后,在 S 端自动 hexo g -d 生成和 pushB 项目的源码。

    但是现在遇到以下问题

    1 、S 使用的是仓库的 ssh 公钥,非个人公钥,只有 git pull 权限。所以在 hexo push B 项目到远程仓库时可能会遇到权限。

    所以产生以下疑问:

    1 、服务器的 ssh 公钥可否实现部分仓库具有 push 权限、部分仓库不具有 push 权限?

    2 、能否为 gitee.com 针对不同仓库使用不同的公钥?

    By the ways,顺便问一下关于 git 的远程仓库别名的问题。

    默认仓库是 git origin https https://xxx,(可 pull 、push 、需密码)

    已经使用 git remote add githook ssh://xxx (只 pull 、免密)增加了 githook 远程仓库

    怎么设置才可以既通过

    3 、git pull githook 自动从 githook 源 pull 代码

    注意,第 3 点实现时,会提醒错误,需要携带分支名才可以实现,如git pull githook master。 由于设置自动部署时当前分支可能不是 master,如果携带具体分支可能会导致 merge 异常。但是将 githook/master 与本地 /master 绑定,git pull 又不能免密从 origin 源下载。

    为啥 ssh 是免密 pull,但没有 push 权限呢?我想的是万一某天被 H 入侵了服务器,没有 push 权限他也动不了代码。而通过 https 则要求操作员每次都要输入密码,看起来好像安全了一点点。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5552 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:13 · PVG 16:13 · LAX 01:13 · JFK 04:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.