【问题标题】:Connect a local git repo to google cloud VM将本地 git 存储库连接到谷歌云虚拟机
【发布时间】:2017-09-26 21:28:21
【问题描述】:

我一直在尝试将本地 python 烧瓶存储库链接到我在谷歌云中的远程(生产)虚拟机。

在谷歌虚拟机上:

sudo mkdir /home/git && cd /home/git
sudo mkdir flask_project.git && cd flask_project.git
sudo git init --bare

sudo vim hooks/post-receive
{Added}
#!/bin/sh
GIT_WORK_TREE=/home/www/flask_project git checkout -f

sudo chmod +x hooks/post-receive

在本地开发中

git init
git remote add production web@<externalip>:/home/git/flask_project.git

我已经生成了 SSH 密钥并向 GCP 元数据添加了公钥,但是当我将提交从本地推送到远程时:

git push production master

Git 停止并且提交没有到达远程。

任何想法我可以如何链接回购?

【问题讨论】:

    标签: git google-cloud-platform


    【解决方案1】:

    在您执行的步骤之后,您的 /home/git/flask_project.git 裸仓库归 root 所有。

    但是您正试图以web 的身份操作它(根据您的远程生产配置),它对裸存储库没有写权限。我怀疑根据操作系统,这可能会导致挂起 - 在我较旧的 opensuse 上它只是失败了:

    远程:错误:将对象添加到存储库数据库对象的权限不足

    试试sudo chown -R web /home/git/flask_project.git

    或者,如果您计划以多个用户的身份推送到该存储库(想到git),您可以使用git init --bare --shared 创建裸存储库。不过,这不是一个好习惯。

    旁注:您还需要在钩子正常运行之前克隆/home/www/flask_project 中的repo(也如web),否则您可能会得到类似的东西:

    remote: fatal: 此操作必须在工作树中运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-29
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多