Git daemon服务器架设指南

Stella981
• 阅读 445

假设你的操作系统是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

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
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
前端尾随者 前端尾随者
1年前
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.检查是不是已经存在密钥(
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Karen110 Karen110
2年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Wesley13 Wesley13
1年前
11月14日任务
一、安装Git  \如果你已经安装好了Git,可以忽略这一步  CentOS安装Git:yuminstallgit  查看Git版本信息:gitversion  配置Git用户信息:gitconfigglobaluser.name"woider"gitconfigglob
Wesley13 Wesley13
1年前
VirtualBox导入已安装好的操作系统的方法
VirtualBox导入已安装好的操作系统的方法1、修改UUID进入VirtualBox安装目录,运行VBoxManage修改UUID,命令运行如下:D:\\VirtualBoxVBoxManage.exe internalcommands setvdiuuid E:\\VirtualX
Stella981 Stella981
1年前
Git@OSC日常操作
本文参考网上的很多文章,然后自己又走了一遍流程。终于搞懂,遂几下操作的过程。一、如何伤处Git@OSC的项目  打开项目,在项目的"管理"处,点击删除项目即可。二、当安装完成gitBush命令行工具后,首先进行配置  gitconfigglobaluser.name"你的名字"  gitconfiggloba
Stella981 Stella981
1年前
Gitolite 构建 Git 服务器
如果不是要和他人协同开发,Git根本就不需要架设服务器。Git在本地可以直接使用本地版本库的路径完成git版本库间的操作。但是如果需要和他人分享版本库、协作开发,就需要能够通过特定的网络协议操作Git库。Git支持的协议很丰富,架设服务器的选择也很多,不同的方案有着各自的优缺点。 HTTPGITDAEM
Stella981 Stella981
1年前
Git 实战教程
1.Git配置使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息。使用gitconfig命令进行配置:​$gitconfigglobaluser.name"ilimhumar"$gitconfigglobal
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_