我在这里有一个世界末日。 我想通过apache安装gitolite3 smart http。 我可以成功地拉,但不推(甚至不给我任何错误或通知,甚至没有任何已知的日志)。 我已经禁用了selinux直到我找出什么是错的。 我的操作系统是CentOS6.4。 我粘贴所有相关的密码和日志,但他们都很好..
下一步我要看什么?
有人可以告诉我,他们的推送电话的gitolite3日志条目是不是比我的下面?
处理:
$ git clone http://flo@server/git/testing $ cd testing/ $ echo "This is a test" > testing.txt $ git add testing.txt $ git status $ git commit -am "Added test file" $ git status $ git push http://flo@server/git/testing $ cd .. $ rm -rf testing $ git clone http://flo@server/git/testing $ ll testing total 0
的/ etc / httpd的/日志/访问日志
10.42.43.1 - - [07/Aug/2013:11:43:09 +0100] "GET /git/testing/info/refs?service=git-upload-pack HTTP/1.1" 401 481 "-" "git/1.7.1" 10.42.43.1 - uncleflo [07/Aug/2013:11:43:09 +0100] "GET /git/testing/info/refs?service=git-upload-pack HTTP/1.1" 200 38 "-" "git/1.7.1" 10.42.43.1 - - [07/Aug/2013:11:44:01 +0100] "GET /git/testing/info/refs?service=git-receive-pack HTTP/1.1" 401 481 "-" "git/1.7.1" 10.42.43.1 - uncleflo [07/Aug/2013:11:44:01 +0100] "GET /git/testing/info/refs?service=git-receive-pack HTTP/1.1" 200 151 "-" "git/1.7.1" 10.42.43.1 - - [07/Aug/2013:11:54:54 +0100] "GET /git/testing/info/refs?service=git-upload-pack HTTP/1.1" 401 481 "-" "git/1.7.1" 10.42.43.1 - uncleflo [07/Aug/2013:11:54:54 +0100] "GET /git/testing/info/refs?service=git-upload-pack HTTP/1.1" 200 38 "-" "git/1.7.1"
/etc/httpd/logs/suexec.log
[2013-08-07 11:43:09]: uid: (650/gitolite3) gid: (650/gitolite3) cmd: gitolite-suexec-wrapper.sh [2013-08-07 11:44:01]: uid: (650/gitolite3) gid: (650/gitolite3) cmd: gitolite-suexec-wrapper.sh [2013-08-07 11:54:54]: uid: (650/gitolite3) gid: (650/gitolite3) cmd: gitolite-suexec-wrapper.sh
/var/lib/gitolite3/.gitolite/logs/gitolite-2013-08.log
2013-08-07.11:43:09 6104 access(testing, uncleflo, R, 'any'),-> refs/.* 2013-08-07.11:43:09 6104 trigger,Writable,access_1,ACCESS_1,testing,uncleflo,R,any,refs/.* 2013-08-07.11:43:09 6104 pre_git testing uncleflo R any -> refs/.* 2013-08-07.11:43:09 6104 system,git,http-backend 2013-08-07.11:43:09 6104 END 2013-08-07.11:44:01 6122 access(testing, uncleflo, W, 'any'),-> refs/.* 2013-08-07.11:44:01 6122 trigger,Writable,access_1,ACCESS_1,testing,uncleflo,W,any,refs/.* 2013-08-07.11:44:01 6122 pre_git testing uncleflo W any -> refs/.* 2013-08-07.11:44:01 6122 system,git,http-backend 2013-08-07.11:44:01 6122 END 2013-08-07.11:54:55 6226 access(testing, uncleflo, R, 'any'),-> refs/.* 2013-08-07.11:54:55 6226 trigger,Writable,access_1,ACCESS_1,testing,uncleflo,R,any,refs/.* 2013-08-07.11:54:55 6226 pre_git testing uncleflo R any -> refs/.* 2013-08-07.11:54:55 6226 system,git,http-backend 2013-08-07.11:54:55 6226 END
对于testing回购:gitolite-admin / conf / gitolite.conf
repo testing RW+ = @all RW+ = daemon
/etc/httpd/conf.d/gitolite3.conf
<VirtualHost *:80> # ServerName git.example.com # ServerAlias git # ServerAdmin [email protected] DocumentRoot /var/www/git <Directory /var/www/git> Options None AllowOverride none Order allow,deny Allow from all </Directory> SuexecUserGroup gitolite3 gitolite3 ScriptAlias /git/ /var/www/bin/gitolite-suexec-wrapper.sh/ ScriptAlias /gitmob/ /var/www/bin/gitolite-suexec-wrapper.sh/ <Location /git> AuthType Basic AuthName "Git Access" Require valid-user AuthUserFile /etc/httpd/git.passwd </Location> </VirtualHost>
/var/www/bin/gitolite-suexec-wrapper.sh
#!/bin/bash # # Suexec wrapper for gitolite-shell # export GIT_PROJECT_ROOT="/var/lib/gitolite3/repositories" export GITOLITE_HTTP_HOME="/var/lib/gitolite3" exec /usr/share/gitolite3/gitolite-shell
在一个空的回购,你必须先提交之前创build一个分支:
git checkout -b master # creates the master branch echo ... # creates the test file git commit -am "first commit" # commit in the right branch git push -u origin master # actually push something
下一个推只需要一个git push 。
请参阅“ 为什么需要显式推送新分支? ”以了解更多关于此步骤的信息。
如果你不创build一个分支,你是在一个分离的头 ,这是从来没有推(因此在远程 – gitolite方面缺乏可见的变化)
在使用gitolite设置智能http时,我也遇到了一些问题。 成功完成后,我写了一篇如何在我的博客文章 。