将本地git repo连接到google cloud VM

时间:2017-09-26 21:28:22

标签: git google-cloud-platform

我一直试图将本地python flask repo链接到谷歌云中的远程(生产)vm。

在Google VM上:

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摊位并且提交没有到达远程。

我有什么想法可以链接回购邮件吗?

1 个答案:

答案 0 :(得分:0)

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

但是您尝试将其作为web(根据您的远程生产配置)进行操作,该配置对裸仓不具有写入权限。我怀疑,根据操作系统的不同,这可能会导致挂起 - 在我的旧版本中,它只会失败:

  

remote:error:将对象添加到存储库数据库对象的权限不足

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

或者,如果您计划以多个用户(git想到)推送到该回购,则可以使用git init --bare --shared来创建裸回购。这不是一个很好的练习。

附注:你还需要在钩子正常运行之前克隆/home/www/flask_project中的仓库(也就是web),否则你可能会得到类似的东西:

  

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