Git是分布式的,并没有服务端跟客户端之分,所谓的服务端安装的其实也是git。Git支持四种协议,file,ssh,git,http。ssh是使用较多的,下面使用ssh搭建一个免密码登录的服务端。

  1、提前安装git跟sshserver;

  2、 创建一个用户,用来运行git服务;

  新建一个用户,叫gituser,然后切换到gituser的默认目录,创建一个叫.ssh的文件夹,并在其中创建一个叫authorized_keys的文件,这个文件将用于存储git开发者的ssh公钥。

  

  3、建立一个git仓库;

  切换到gituser默认目录,建立一个testgit文件夹,在其中创建一个用于测试的git项目并进行初始化。

  

  创建一个aaa.txt,内容随便填写,将该文件纳入git管理

  

  4、创建证书

  切换到git开发者电脑。设置本地git用户并创建公钥和私钥

  

  Windows系统,在用户主目录下有id_rsa.pub跟id_rsa两个文件:

  

  

  这两个就是一对秘钥,id_rsa是私钥,id_rsa.pub是公钥。

  5、添加公钥到ssh  

  将本地生成的id_rsa.pub的内容追加到git服务器gituser用户的~/.ssh/authorized_keys文件中。注意,不是把authorized_keys建成文件夹,把公钥扔进去,是追加文件内容。

  特别要注意:.ssh的权限必须是700,authorized_keys文件的权限必须是600,否则公钥无法生效。

  6、修改ssh服务端配置

  vi /etc/ssh/sshd_config

  

  7、从服务端clone项目

  在开发者电脑端,执行以下命令:

  

  可以看到我们成功把“服务器”上的git项目clone到了本地。

  ------------------------------------------------------------------------------------------------------------

  其实,上面的操作有些繁琐:在“服务端”建一个git项目,然后初始化,然后建一个可以免密码登录的用户,然后用这个账号把git项目拷贝了下来;简单来说,我不免密码登录,也可以git clone那个项目,比如我用root用户:

  

  也就是说,只要“服务端”有git项目,有一个可以远程登录的ssh用户,我们就可以直接git clone 那个项目,这个时候,“服务端”跟“客户端”都只要git,没有所谓的gitlab等服务端软件,两者之间只是通过ssh通信就可以实现git的clone,commit等操作,两者地位是平等的。

  可见git的确是无中心的分布式的。而github,gitlab之类的“服务端”其实是一个帮助我们管理用户跟git通信方式的工具,在这一点上,gitlab跟visualsvn-server之类的软件有本质的区别。

  ------------------------------------------------------------------------------------------------------------

git分布式的理解----简单服务端搭建的更多相关文章

  1. 前端使用node.js+express+mockjs+mysql实现简单服务端,2种方式模拟数据返回

    今天,我教大家来搭建一个简单服务端 参考文章: https://www.jianshu.com/p/cb89d9ac635e https://www.cnblogs.com/jj-notes/p/66 ...

  2. Centos 6.5 pptpd服务端搭建过程

    首先检测有没有启用ppp和tun cat /dev/ppp cat /dev/net/tun 如果显示是这样的 cat: /dev/ppp: No such device or address cat ...

  3. 前端用node+mysql实现简单服务端

    node express + mysql实现简单服务端前端新人想写服务端不想学PHP等后端语言怎么办,那就用js写后台吧!这也是我这个前端新人的学习成果分享,如有那些地方不对,请给我指出. 1.准备工 ...

  4. Apereo CAS Server服务端搭建教程

    不说废话了,直接看搭建过程吧. 首先到下载源码,https://github.com/apereo/cas-overlay-template/tree/4.2 附上地址,本次版本为4.2,下载源码后如 ...

  5. react 项目实战(一)创建项目 及 服务端搭建

    1.安装 React社区提供了众多的脚手架,这里我们使用官方推荐的create-react-app. //安装脚手架 npm install -g create-react-app //生成并运行项目 ...

  6. FTP服务端 FTP服务端搭建教程

    FTP服务端搭建教程如下:一.需要准备以下工具:1.微型FTP服务端.2.服务器管理工具二.操作步骤:1.下载微型FTP服务端.(站长工具包可下载:http://zzgjb.iis7.com/ )2. ...

  7. git 在linux下服务端搭建

    本文以centos为例,其他linux请自行参照对应方式. 1. 服务端安装git yum install git 2. 服务端添加无shell登录权限的用户,将username替换为要添加的用户 u ...

  8. 菜鸟之webservice(一) 服务端搭建

    首先说一下,为什么取名叫菜鸟之webservice,由于本人技术真的不咋滴,写博客仅仅是为了对所学知识的总结.webservice对于我来说一直都是高大上的感觉,一个java web和javase都没 ...

  9. centos6.5 svn服务端搭建

    一.前言 Subversion是一个免费的开源的版本管理系统,它是作为CVS(Concurrent Versions System)的取代品出现的.本文简单介绍了Subversion在centos上的 ...

随机推荐

  1. lua遍历文件

    看了不少人的,主要还是错误处理有点问题,不多说了 贴代码: require "lfs" function getpathes(rootpath, pathes) pathes = ...

  2. 程序自动化需要一个Windows服务

    前段时间,写了一个SPC to SQL数据传输的小功能,用户不太想用手执行或有可能忘记操作.解决这个问题,Insus.NET原本是使用windows的任务管理执行的,但觉得并不太理想,因此又得写一个W ...

  3. CHImage

    1.启动图.图标 iOS应用图片尺寸制作脚本 ======= github 规格尺寸(官方) AppIcon应用图标 and Launchimage启动图标的制作 iPhone所有手机型号屏幕尺寸 2 ...

  4. 算法训练 Balloons in a Box (枚举,模拟)

    问题描述 你要写一个程序,使得能够模拟在长方体的盒子里放置球形的气球. 接下来是模拟的方案.假设你已知一个长方体的盒子和一个点集.每一个点代表一个可以放置气球的位置.在一个点上放置一个气球,就是以这个 ...

  5. Beautiful Sequence

    Beautiful Sequence 给定一些数(可能相同),将它们随机打乱后构成凹函数,求概率 .N<=60 . 首先,这种题求概率事实上就是求方案.所以现在要求的是用这些数构成凹函数的方案数 ...

  6. 配置IIS使用Python 与常见问题解决

    打开IIS管理器 选择功能视图,然后选择ISAPI和CGI限制 打开后,在右侧操作,点击添加,会出现下图所示 按图中提示填写相应部分,在选择路径时,默认可能是dll文件,改成全部文件即可,然后再选择p ...

  7. 《图解HTTP》阅读笔记---第一章网络基础

    第一章.网络基础TCP/IP:----------传输控制协议Transmission Control Protocol / 网络协议Internet Protocol是一种用于Internet(因特 ...

  8. CF877E Danil and a Part-time Job 线段树维护dfs序

    \(\color{#0066ff}{题目描述}\) 有一棵 n 个点的树,根结点为 1 号点,每个点的权值都是 1 或 0 共有 m 次操作,操作分为两种 get 询问一个点 x 的子树里有多少个 1 ...

  9. echarts分段(一段一种颜色)显示

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. matplolib实例之 城市气候与海洋的关系研究