2017-09-26 12 views
0

Google Cloudのリモート(プロダクション)VMにローカルPythonフラスコのリポジトリをリンクしようとしていました。 GoogleのVM上でGoogleのクラウドVMにローカルgitリポジトリを接続

:ローカルdevのオン

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 [email protected]<externalip>:/home/git/flask_project.git 

私はSSH鍵を生成し、GCPのメタデータに公開鍵を追加しましたが、私はローカルからリモートへのコミットを押すとき:

git push production master 

Gitが停止し、コミットがリモートに届かない。

どのように私はレポのリンクができますか?

答えて

0

/home/git/flask_project.gitベアレポは、実行した手順の後にrootが所有しています。

ただし、リモートプロダクション設定に応じてwebとして操作しようとしていますが、これはベアレポに書き込み権限がありません。私はOSに依存し、これはハングを引き起こす可能性があることを疑う - 私の古いopenSUSEの上でそれだけで失敗します。

remote: error: insufficient permission for adding an object to repository database objects

複数のユーザーとしてそのレポにプッシュすることを計画している場合、代わりにsudo chown -R web /home/git/flask_project.git

を試してみてください(gitあなたはgit init --bare --sharedを使用して裸のレポを作成することができます)。素晴らしい練習ではありません。

サイドノート:

remote: fatal: This operation must be run in a work tree

:あなたもそうでない場合、あなたはおそらくのようなものを得るでしょう、フックが正常に動作することができます前に、( webと同様) /home/www/flask_projectでレポのクローンを作成する必要があります
関連する問題