GIT:未能将一些引用推送到'user @ server:repositories / project.git'

时间:2014-02-12 23:22:15

标签: git gitolite

服务器上的GIT主目录是/ srv / gitolite,配置如下:

user@server:~/repositories$ ls -al /srv/gitolite/repositories/
total 20
drwxr-x--- 5 gitolite gitolite 4096 Feb 12 21:23 .
drwxr-x--- 8 gitolite gitolite 4096 Feb 12 21:23 ..
drwx------ 8 gitolite gitolite 4096 Feb 12 21:23 gitolite-admin.git
drwxrwx--- 7 gitolite gitolite 4096 Feb 12 21:23 project.git
drwx------ 7 gitolite gitolite 4096 Feb 12 21:23 testing.git

gitolite @ server:/ $ cat /srv/gitolite/.gitolite/conf/gitolite.conf

    repo    gitolite-admin
            RW+     =   admin

    repo    testing
            RW+     =   @all

    repo    project
            RW+     =   user

gitolite@server:/$ ls -al /srv/gitolite/.gitolite/keydir/
drwx------ 2 gitolite gitolite 4096 Feb 12 20:55 .
drwx------ 8 gitolite gitolite 4096 Feb 10 23:03 ..
-rw-r--r-- 1 gitolite gitolite  404 Feb 10 23:03 admin.pub
-rw-rw---- 1 gitolite gitolite  404 Feb 11 22:30 user.pub
-rw-rw---- 1 gitolite gitolite  393 Feb 12 20:55 test.pu

在本地机器上我做了:

mato@machine:/tmp$ mkdir test
mato@machine:/tmp$ cd test/
mato@machine:/tmp/test$ vim file.txt
mato@machine:/tmp/test$ git init
Initialized empty Git repository in /tmp/test/.git/
mato@machine:/tmp/test$ git remote add origin user@server:repositories/project.git
mato@machine:/tmp/test$ git add .
mato@machine:/tmp/test$ git commit -m 'test'
[master (root-commit) cb6bc87] test
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
mato@machine:/tmp/test$ git push origin master:refs/heads/master
Counting objects: 3, done.
Writing objects: 100% (3/3), 215 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: ENV GL_RC not set
remote: BEGIN failed--compilation aborted at hooks/update line 20.
remote: error: hook declined to update refs/heads/master
To user@server:repositories/project.git
 ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'user@server:repositories/project.git'

为什么我不能将项目file.txt推送到GIT服务器?我是否必须更改服务器上的某些权限?或者我做错了什么?

感谢您的任何建议。

2 个答案:

答案 0 :(得分:1)

我在尝试上传到Bitbucket.org时遇到了这个错误。 我必须先添加SSH密钥。

虽然您正在运行自己的Git服务器,但这可能会有所帮助。

我跑了git push -u origin master #The -u flag告诉Git你第一次推进的是什么分支。

如果这不起作用,您可能必须首先尝试拉动然后推动。

答案 1 :(得分:0)

我在任何关于gitolite的教程中都没有找到丢失的谜题: 请注意,gitolite存储库始终作为“gitolite”用户访问。 gitolite将通过SSH密钥识别您的实际用户并使用适当的权限。

我无法使用:

git remote add origin user@server:repositories/project.git

但我必须使用登录名gitolite(所有帐户都通用)

git remote add origin gitolite@server:repositories/project.git