git实现公共仓库

如果需要设置一个仓库为公共仓库,不需要rsa公钥即可访问
首先启动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/git
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

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

你可能感兴趣的:(git实现公共仓库)