git 私服搭建教程

前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基于上述两点原因,我们有必要搭建自己的 git 服务器.

虽然我们能搭建基本的 git 服务器,但是想要做到 github 网站那种规模还不是目前能够探讨的,本节的主要目标是使用我们私有服务器对我提供类似于github的远程仓库托管服务,以下示例以centos 服务器为例说明:

安装 git 服务

运行以下命令安装 git 服务

详情请参考安装 git

配置 git 用户

创建 git 用户组和 git 用户,以便对外提供 git 服务

收集 git 公钥

回忆一下,在我们使用 github 网站时,我们是不是曾经将本地电脑生成的公钥~/.ssh/id_rsa.pub 复制到 Account -> Settings -> SSH and GPG keys -> New SSH key,而我们现在搭建的git 服务还是简单,但是这步骤必不可少,因此只能手动收集素有需要访问我们服务器的公钥文件.

我们知道需要登录我们服务器的用户公钥一般是存放在~/.ssh/id_rsa.pub ,那当前服务器作为远程服务器将这些公钥存放到哪里呢?还记得上一步我们创建了 git 用户吗?

因为 linux 系统支持多用户操作,而 git 用户就用于专门运行 git 服务,负责所有和 git 有关的事宜.因此,导入公钥文件的目录就是/home/git/.ssh/authorized_keys文件.一个用户公钥占用一行,几个用户就有几行.

初始化 git 仓库

同样我们和github 网站类比,在 github 创建仓库时都会在当前账号下创建项目,完整的访问路径大概是这样的: git@github.com:snowdreams1006/git-demo.git,从中我们可以看出项目仓库都有一个前缀即命名空间,这和上一步操作是不是很类似,上一步收集 git 公钥时我们也有统一的目录,这次也不例外.

假设 git 仓库存放目录在 /home/git/repos/,同样的先创建该目录并赋予响应权限.

经过上述操作,我们成功在远程服务器部署了 git 服务,并且创建了 git-demo 测试项目,实际访问路径大概是这样的

git@snowdreams1006.cn:/home/git/repos/git-demo.git

本地克隆远程仓库

身份回到本地电脑,假设本地已搭建好 git 环境,并且生成的ssh 公钥上传到远程服务器,那么我们接下来就可以和之前远程服务器是 github 网站那样的方式开发我们的项目了,唯一不同的是,接下来我们推送的远程服务器均是我们刚搭建好的主机.

需要做好心里准备,我们搭建的服务器还很简单,没有 github 网站那样可以直观操作远程仓库,但是这并不影响我们的 pull push merge 等操作哟!

git clone git@snowdreams1006.cn:/home/git/repos/git-demo.git

git-指的是 git 用户,snowdreams1006.cn-指的是远程主机域名或ip,/home/git/repos-指的是 git 仓库的目录,git-demo.git-指的是项目名称

现在我们已经成功搭建好自己的 git私服了,是不是很简单呢?有没有对 git 和 github 进一步理解?欢迎大家一起探讨!

centos 6.8安装git_git 入门教程之 git 私服搭建教程相关推荐

  1. git 入门教程之 git 私服搭建教程

    git 私服搭建教程 前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基于上述两点原因,我 ...

  2. ​HealthKit开发快速入门教程之HealthKit数据的操作

    ​HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知 ...

  3. HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID

    HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...

  4. HealthKit开发快速入门教程之HealthKit开发概述简介

    HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为&qu ...

  5. nodejs入门教程之http的get和request简介及应用

    nodejs入门教程之http的get和request简介及应用 前言 上一篇文章,我介绍了nodejs的几个常用的模块及简单的案例,今天我们再来重点看一下nodejs的http模块,关于http模块 ...

  6. python语言if语句-Python入门教程之if语句的用法

    这篇文章主要介绍了Python入门教程之if语句的用法,是Python入门的基础知识,需要的朋友可以参考下 OK分享完毕!需要Python资料的可以加QQ群:832339352 进群免费领取下面资料! ...

  7. java jni helloword_JNI入门教程之HelloWorld篇

    JNI入门教程之HelloWorld篇 来源:互联网  宽屏版  评论 2008-05-31 09:07:11 本文讲述如何使用JNI技术实现HelloWorld,目的是让读者熟悉JNI的机制并编写第 ...

  8. linux lvm界面,Linux使用入门教程之LVM

    Linux使用入门教程之LVM 1.pvscan #查看当前系统是否存在 PV(物理卷) 2.fdisk -l #查看当前系统分区 3.pvcreate /dev/sda{5,6} /dev/sdb1 ...

  9. php zend framework 教程,Zend Framework入门教程之Zend_Session会话操作详解

    本文实例讲述了Zend Framework入门教程之Zend_Session会话操作.分享给大家供大家参考,具体如下: 会话命名空间 实现会话 代码: require_once "Zend/ ...

最新文章

  1. java异步请求显示数据格式_JSON(四)——异步请求中前后端使用Json格式的数据进行交互...
  2. Scala模式匹配细节说明
  3. P6076-[JSOI2015]染色问题【组合数学,容斥】
  4. 7-57 愿天下有情人都是失散多年的兄妹 (25 分)(深搜)
  5. 【Elasticsearch】Elasticsearch 动态模板(Dynamic templates)
  6. jquery 手型 鼠标穿过时_三模无线搭配对称手型设计,游戏致胜利器,ROG烈刃2无线鼠标...
  7. c语言程序改错:求两个整数的最小公倍数,【C语言】求两个整数的最大公约数、最小公倍数...
  8. python月份字符串_python实现字符串和日期相互转换的方法
  9. 智慧城市是啥?能少点雾霾吗?
  10. android 下载 文件怎么打开方式,apk文件怎么打开?
  11. 硬件工程师 VS 软件工程师
  12. “华为跳槽内幕”:有钱没用,你得值钱
  13. 12月6日云栖精选夜读:语音购票、刷脸进站:上海联手阿里打造全球首个AI地铁之城...
  14. 【Vue学习总结】22.使用Mint UI的infinite-scroll实现上拉分页加载
  15. Python 碎碎念 -- 不定期记录遇到的各种小问题(藤原豆腐坊自家用)
  16. 说说本人学习DirectX之路
  17. 《程序员修炼之道-从小工到专家》读书笔记
  18. Deep K-SVD Denoising
  19. 普林斯顿 计算机专业排名,普林斯顿大学计算机排名2020年全球超级有用干货
  20. 2、es索引创建及查询

热门文章

  1. IBM T60网卡问题
  2. java生成图片url_Java Springboot如何基于图片生成下载链接
  3. CSDN上传资源时一直提示 请填写资源tag
  4. UltraISO 制作ESXi 的 USB 安装盘
  5. 在html中控制自动换行
  6. 算法笔记--KMP算法 EXKMP算法
  7. 朴素的UNIX之-Linux CFS一个注释
  8. 各种控制列表--前缀列表
  9. vs2005 pro 在浏览器查看下的一个问题!
  10. mysql5.7.9 json_Mysql5.7.9原生JSON格式支持