Git daemon服务器架设指南

假设你的操作系统是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文件中添加如下配置:

1[daemon] 2 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

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

sourceTree 添加 ssh key 方法

1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

​一篇文章总结一下Python库中关于时间的常见操作

前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在

Git daemon服务器架设指南 - HelloWorld