如果需要设置一个仓库为公共仓库,不需要rsa公钥即可访问
首先启动git daemon
sudo git daemon --reuseaddr -–base-path=/home/git/repositories/
然后到要共享的仓库目录下
touch git-daemon-export-ok
这样,任何人都可以
git clone git://ip/仓库名
注意,通过git协议来clone的仓库,默认是没有push权限的
service git
{
disable = no
socket_type = stream
wait = no
user = git
group = git
server = /usr/local/libexec/git-core/git-daemon
server_args = –inetd –syslog –verbose –-base-path=/home/git/repositories/ –-enable=receive-pack
}
然后,再重启xinetd
首先启动git daemon
sudo git daemon --reuseaddr -–base-path=/home/git/repositories/
然后到要共享的仓库目录下
touch git-daemon-export-ok
这样,任何人都可以
git clone git://ip/仓库名
注意,通过git协议来clone的仓库,默认是没有push权限的
如果要开通匿名的push权限,可以加一个–-enable=receive-pack参数
sudo git daemon --reuseaddr–-enable=receive-pack -–base-path=/home/git/repositories/
如果要以守护进程的方式运行git-daemon,可编辑/etc/xinetd.d/gitservice git
{
disable = no
socket_type = stream
wait = no
user = git
group = git
server = /usr/local/libexec/git-core/git-daemon
server_args = –inetd –syslog –verbose –-base-path=/home/git/repositories/ –-enable=receive-pack
}
然后,再重启xinetd
service xinetd restart
注:在不用xinetd启动git daemon守护进程,我们可以用nohup命令来不挂断地运行守护进程在后台运行
sudo nohup git daemon --reuseaddr -–base-path=/home/git/repositories/ &>/dev/null &
注:当clone git仓库时出现fatal: protocol error: bad line length character:
我发现的问题是git daemon的端口被xinted占用
netstat -anp | grep xinted
tcp 0 127.0.0.1:2121 0.0.0.0:* LISTEN 7546/xinted
kill -9 7546