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

2020-09-20 03:04:55 +08:00
 kajweb

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 则要求操作员每次都要输入密码,看起来好像安全了一点点。

668 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/708675

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX