Git推送错误:远程:错误:将对象添加到存储库数据库的权限不足。/objects
我已经在Redhat上的apache下努力安装Git很多天了Git推送错误:远程:错误:将对象添加到存储库数据库的权限不足。/objects,git,apache,Git,Apache,我已经在Redhat上的apache下努力安装Git很多天了 Apache版本:服务器版本:Apache/2.4.6(Red Hat Enterprise (Linux) Git版本1.8.3.1 Red Hat Enterprise Linux Server 7.1测试版 apache下Git的配置: 和服务器上的Git配置文件,如下所示 将裸服务存储库/var/www/git/test1克隆为 git克隆 当我从客户机推送任何更改时,仍然会得到如下错误: 我在网上做了很多研究,也做了
- Apache版本:服务器版本:Apache/2.4.6(Red Hat Enterprise (Linux)
- Git版本1.8.3.1
- Red Hat Enterprise Linux Server 7.1测试版
- apache下Git的配置:
- 和服务器上的Git配置文件,如下所示
我真的不知道问题出在哪里。请帮助。我建议您检查文件权限。 检查ssh密钥的文件权限,可以使用chmod进行更改。 你改变了对整个目录的权限,我同意Splash是个坏主意 如果您还记得目录的原始权限是什么,我将尝试将它们设置回该权限,然后执行以下操作
cd ~/.ssh
chmod 700 id_rsa
或
或
CHMOD权限:
# Permission rwx
7 read, write and execute rwx
6 read and write rw-
5 read and execute r-x
4 read only r--
3 write and execute -wx
2 write only -w-
1 execute only --x
0 none ---
在哪里可以找到钥匙?
在.ssh文件夹旁边。这将仅为所有者(您)将id_rsa文件设置为rwx(读、写、执行),其他所有人都将无法访问
如果最重要的是没有帮助,试着看看你的团队。将用户添加到组并尝试将您的分支推送到远程源站/主站。我建议您检查文件权限。 检查ssh密钥的文件权限,可以使用chmod进行更改。 你改变了对整个目录的权限,我同意Splash是个坏主意 如果您还记得目录的原始权限是什么,我将尝试将它们设置回该权限,然后执行以下操作
cd ~/.ssh
chmod 700 id_rsa
或
或
CHMOD权限:
# Permission rwx
7 read, write and execute rwx
6 read and write rw-
5 read and execute r-x
4 read only r--
3 write and execute -wx
2 write only -w-
1 execute only --x
0 none ---
在哪里可以找到钥匙?
在.ssh文件夹旁边。这将仅为所有者(您)将id_rsa文件设置为rwx(读、写、执行),其他所有人都将无法访问
如果最重要的是没有帮助,试着看看你的团队。将用户添加到组中,并尝试将您的分支推到远程源站/主站点。注意:我已经有10多年没有接触过Apache了,所以请根据需要添加尽可能多的盐。不过,有一个明显的问题: 不要那样做。你不应该这么做。而不是: 使用单行顺序:
git init --bare --shared=group
(或者只是——共享的,意思相同)
我不清楚您何时以及为什么想要将http.receivepack
配置为true
,但请参见。注意:我已经10多年没有接触过Apache了,所以请根据需要多加一些盐。不过,有一个明显的问题:
不要那样做。你不应该这么做。而不是:
使用单行顺序:
git init --bare --shared=group
(或者只是——共享的,意思相同)
我不清楚您何时以及为什么需要将http.receivepack
配置为true
,但请参见。是裸(空)回购协议吗?是裸(空)回购协议吗?我们只是使用不同的协议,即http。。这不是问题所在。我面对http的唯一问题是不可能签入大小为4gb的文件。我更喜欢使用ssh。嗯,值得一看。您已更改了文件的所有者和权限。谢谢,我正在使用smart http而不是ssh for git,不确定http是否与rsa有关。服务器上存储库的所有者“apache”和客户端“briangit”在同一个“apache”组中。请检查是否已将用户添加到该组,以便他/她可以将分支拉入或推送到远程?我的存储库为空。它应该不会有文件大小的问题。这与大小无关。这就是我对这个裸回购的评论,这就是为什么你会遇到这个问题。您只需要检查作为您的机器的客户端中ssh密钥的权限,并检查用户组。你试过上面提到的命令吗?你只是使用了不同的协议,那就是http。。这不是问题所在。我面对http的唯一问题是不可能签入大小为4gb的文件。我更喜欢使用ssh。嗯,值得一看。您已更改了文件的所有者和权限。谢谢,我正在使用smart http而不是ssh for git,不确定http是否与rsa有关。服务器上存储库的所有者“apache”和客户端“briangit”在同一个“apache”组中。请检查是否已将用户添加到该组,以便他/她可以将分支拉入或推送到远程?我的存储库为空。它应该不会有文件大小的问题。这与大小无关。这就是我对这个裸回购的评论,这就是为什么你会遇到这个问题。您只需要检查作为您的机器的客户端中ssh密钥的权限,并检查用户组。你试过上面提到的命令吗?多亏了Torek,SELinux才是这个错误的罪魁祸首。当它被禁用后,它可以正常工作。啊,SELinux。我自己从来没能让Git服务器在这种情况下工作。@briantalk如果你把它写在你的OP上会很有用,所以这个有用的信息不会隐藏在评论中。虽然对我来说,它并没有解决我的问题。多亏了Torek,结果证明SELinux是这个错误的罪魁祸首。当它被禁用后,它可以正常工作。啊,SELinux。我自己从来没能让Git服务器在这种情况下工作。@briantalk如果你把它写在你的OP上会很有用,所以这个有用的信息不会隐藏在评论中。虽然对我来说,这并没有解决我的问题。
chmod 777 ~/.ssh/id_rsa
# Permission rwx
7 read, write and execute rwx
6 read and write rw-
5 read and execute r-x
4 read only r--
3 write and execute -wx
2 write only -w-
1 execute only --x
0 none ---
chmod -R 755 .
git init --bare
git config core.sharedRepository group
git init --bare --shared=group