在gitlab配置完毕后,我们push一个repo,效果可能如下:
$ git push origin master:dev enjoy code, enjoy life. Total 0 (delta 0), reused 0 (delta 0) remote: GitLab: An unexpected error occurred (redis-cli returned 1). To git@xxx:root/my_project.git * [new branch] master -> dev
这儿它提示得已经足够清楚,redis有问题.不过也再也找不到其它提示了. 处理方法就是修改配置文件,让redis能够连上去.
在~git/gitlab-shell 目录下有config.yml,配置的就是redis的连接方式.默认是config.yml.example copy过来的.
# Redis settings used for pushing commit notices to gitlab redis: bin: /usr/bin/redis-cli #host: 127.0.0.1 #port: 6379 # pass: redispass # Allows you to specify the password for Redis database: 0 socket: /var/run/redis/redis.sock # Comment out this line if you want to use TCP namespace: resque:gitlab
修改方法是反注释掉host和port,注释掉socket.修改后如下:
# Redis settings used for pushing commit notices to gitlab redis: bin: /usr/bin/redis-cli host: 127.0.0.1 port: 6379 # pass: redispass # Allows you to specify the password for Redis database: 0 #socket: /var/run/redis/redis.sock # Comment out this line if you want to use TCP namespace: resque:gitlab
注意三者都要搞好.我之前没有注释socket,错了好久都没过.
另外一个错误是
git push origin master:dev enjoy code, enjoy life. /home/git/gitlab-shell/lib/gitlab_net.rb:140:in `read': No such file or directory - /home/git/gitlab-shell/.gitlab_shell_secret (Errno::ENOENT) from /home/git/gitlab-shell/lib/gitlab_net.rb:140:in `secret_token' from /home/git/gitlab-shell/lib/gitlab_net.rb:85:in `http_request_for' from /home/git/gitlab-shell/lib/gitlab_net.rb:96:in `request' from /home/git/gitlab-shell/lib/gitlab_net.rb:119:in `post' from /home/git/gitlab-shell/lib/gitlab_net.rb:31:in `check_access' from /home/git/gitlab-shell/lib/gitlab_shell.rb:89:in `verify_access' from /home/git/gitlab-shell/lib/gitlab_shell.rb:29:in `exec' from /home/git/gitlab-shell/bin/gitlab-shell:20:in `<main>' fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
原因是git-shell和gitlab本身的版本不一致.请查看官方版本.