我一直试图将本地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摊位并且提交没有到达远程。
我有什么想法可以链接回购邮件吗?
答案 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:此操作必须在工作树中运行