我关注this tutorial:关于为ec2
实例设置git部署过程。
我仔细检查了配置文件中带有ec2
主机的~/.ssh/
计算机的所有步骤。创建裸git仓库。添加post-receive
钩子脚本等。
在本地,我做了一些修改,提交。
然后我添加了ec2
repo git remote add deploy ec2:/home/ec2-user/ab-site
(ab-site是我刚刚初始化的裸git repo - 而ec2
是我在{{1}本地设置的ssh别名}文件)。
然而,当我推进~/.ssh/config
我收到了一堆错误。
git push deploy +master:refs/heads/master
所以我很好奇我接下来要解决的问题。
答案 0 :(得分:0)
core.bare和core.worktree没有意义
这是一个警告since Git 2.5+, is fixable。如果该警告位于远程端,则表示core.bare设置为true,同时也设置了worktree。
通常的解决方法是git config --unset core.worktree
,但在您的情况下,from that comment
使用
bare=false
它可以正常工作。
然后您可以仔细检查权限问题。
答案 1 :(得分:0)
您的问题包含警告和错误
警告
警告:core.bare和core.worktree远没有意义: 警告:core.bare和core.worktree远没有意义:错误:
<强>解决方案强>
Bare存储库是只读存储库。裸仓库最常见的用例是创建一个远程中央Git仓库,
所以git打印&#34;致命:core.bare和core.worktree没有意义&#34;错误信息。因此,您需要在repo的配置文件中设置bare = false
。
cd barerepo
git config --bool core.bare false
git config --path core.worktree /var/www/mywork
的错误
将对象添加到存储库数据库的权限不足
./对象远程:致命:无法写入对象错误:解包失败:unpack-objects异常退出
<强>解决方案强>
cd repository/.git
sudo chmod -R g+ws *
sudo chgrp -R mygroup *
git config core.sharedRepository true