将 Gitolite 服务器上的存储库推送到 Gitolite,同时也能够从客户端推送和拉取

发布于 2025-01-03 14:37:01 字数 312 浏览 0 评论 0原文

我有一个 Gitolite 服务器,我将网站源代码推送到其中。然后,服务器使用挂钩将存储库克隆到网站文件夹中。我希望能够在我的网站中更改 PHP 脚本中的文件,然后让 PHP 脚本自动添加、提交并将这些更改的文件推送回 Gitolite 服务器。

到目前为止,我已经成功添加并提交了文件,但无法推送它们。如果我尝试推送到存储库的本地引用,我会被告知它似乎不是一个存储库(我认为这是一个文件权限问题,因为它与 sudo 一起使用),如果我尝试通过 SSH 推送,我不能指定一个私钥,因为我在 Lion Server 中的 _www 用户下运行它。是否可以本地推送到本地 Gitolite 存储库?

I have a Gitolite server which I push my website source code to. The server then clones the repo into the websites folder using a hook. I would like to be able to change files in a PHP script in my website then have the PHP script automatically add, commit, and push these changed files back to the Gitolite server.

So far, I've managed to add and commit the files, but I cannot push them. If I try to push to the local reference to the repository, I am told it doesn't appear to be a repo (a file permissions problem I think as it worked with sudo), and if I try to push via SSH, I cannot specify a private key as I'm running this under the _www user in Lion Server. Is it possible to push locally to a local Gitolite repo?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

﹉夏雨初晴づ 2025-01-10 14:37:01

推送到 Gitolite 的想法是确保 Gitolite 可以获取您的 id,以便将此 id 与其内部授权配置文件一起使用。
使用 ssh 是一个很好的方法(因为在 Gitolite 中注册的公钥名称将用作您的 ID 名称)

因此:

  • 您需要确保 _www 用户有权推送到您的repo
  • 您需要在 ~_www/.ssh 下有一个公钥/私钥才能供推送使用,
  • 您需要将 _www 用户的公钥添加到 gitolite 密钥中。

OP enovav 评论说:

  • 在 Lion Server 上,_www 用户没有主文件夹。
  • PHP 在 /Library/WebServer 中查找 SSH 密钥。
  • 默认情况下不可能登录 _www 用户,但是 此线程解释了如何操作。 (chsh -u Admin _www 将 shell 从 /bin/false 更改)。
  • 然后可以按照上面的步骤进行操作。

The idea with pushing to Gitolite is to make sure Gitolite can get your id, in order to use this id with its internal authorization config file.
Using ssh is a good way to do that (since the name of the public key registered in Gitolite will be used as your id name)

So:

  • you need to make sure _www user is authorized to push to your repo
  • you need to have a public/private key under ~_www/.ssh to be used by your push
  • you need to add the public key of _www user to gitolite keys.

The OP enovav comments that:

  • On Lion Server, the _www user does not have a home folder.
  • PHP looks for SSH keys in /Library/WebServer.
  • It is not possible by default to log in to the _www user, however this thread explains how. (chsh -u Admin _www to change the shell from /bin/false).
  • The steps can then be followed as above.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文