假设你的操作系统是Ubuntu 14.04,用户名是Mike。你的git项目MyProject的目录是/home/Mike/workspace/MyProject,你想在/home/Mike/share/MyProject.git目录上架设支持“git://”协议的远程服务器,那么你需要做如下几步:
1,打开终端安装git,在终端输入命令:
sudo apt-get install git
,如果你已经安装git可以略过此步;
2,进入/home/Mike/workspace目录,在终端输入命令:
git clone --bare MyProject MyProject.git
。完成后,git将会在同一目录下创建MyProject.git目录,里面只包含裸仓库(bare repository);
3,在MyProject.git目录里创建一个空的git-daemon-export-ok文件,并将MyProject.git目录移动到/home/Mike/share/MyProject.git。你可以完全借助Ubuntu的文件管理器完成;
4,打开终端启动git守护进程,在终端输入命令:
git daemon --reuseaddr --base-path=/home/Mike/share /home/Mike/share/MyProject.git
。此时,git守护进程开始运行,并监听端口号9418。停止git守护进程只需要关闭终端即可。
5,默认按照上述步骤,远程用户只能通过“git://”协议获得读取权限(git clone),如果需要获得写入权限(git push),那么只需要进入/home/Mike/share/MyProject.git目录,在终端输入命令:
git config daemon.receivepack true
,git将会在该目录的config文件中添加如下配置:
[daemon]
receivepack = true
完成以上几步后,远程服务器就架设好了。在终端输入命令:
git clone git://localhost/MyProject.git
,就会正确地在当前目录克隆一个MyProject项目仓库了。
_注意_:git的守护进程会监听端口9418,所以,你需要在Ubuntu防火墙上将此端口添加为例外,在终端输入命令:
sudo ufw allow 9418
即可。
_注意_:在启动git守护进程的命令中,--base-path后的目录将会作为远程访问服务器时的前缀目录,如果用下面这条命令启动git守护进程:
git daemon --reuseaddr --base-path=/home /home/Mike/share/MyProject.git
,那么远程访问时就需要用
git://localhost/Mike/share/MyProject.git
。