1、安装
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ yum install git

2、接下来我们 创建一个git用户组和用户,用来运行git服务:
$ groupadd git
$ useradd git -g git
$ passwd ******

3、创建git仓库
$ cd /home/git
$ git init --bare gitrepo.git
$ chown -R git:git gitrepo.git

4、禁用shell登录(为安全考虑,git用户不允许登录shell)
#修改/etc/passwd
$ vim /etc/passwd
#找到git的用户设置 如:
git:x:502:503::/home/git:/bin/bash
改为
git:x:502:503::/home/git:/bin/git-shell
#这样用户用git账户ssh连接后只能使用git命令了

5、打开 RSA 认证
进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存并重启 sshd 服务:
$ /etc/rc.d/init.d/sshd restart

6、客户端安装git并在(window的git bash)git操作提交
#进入一个空的工作目录
#设置用户信息:
$ git config --global user.name "username"
$ git config --global user.email "your@example.com"

7、#初始化git
$ git init

8、管理公钥
$ ssh-keygen -C 'your@email.com' -t rsa #为你生成rsa密钥,可以直接一路回车,执行默认操作
客户端生成密要方式同上。
生成密钥后,一般C:\Users\用户名\.ssh会出现

.ssh
├── id_rsa
└── id_rsa.pub #公钥 服务端需要里边内容验证连接着身份
将id_rsa.pub 里边内容复制到authorized_keys

如找不到authorized_keys文件,则需在服务器端新建
$ cd /home/git
$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys

在客户端上,打开 id_rsa.pub 复制里边内容,一行一个
$ vim /home/git/.ssh/authorized_keys
#粘贴客户端生成的公钥,保存退出

9、测试本地文件提交到远程仓库

$ vim readme.md
#编辑些内容保存退出
$ git add readme.md #添加到git缓存中
$ git commit -m 'write readme file' #提交修改
#添加远程git仓库
$ git remote add origin git@your_host_name:/home/git/gitrepo.git
$ git push origin master #这样就同步到服务器了
其他人要同步

#克隆和推送:
$ git clone git@your_host_name:/home/git/gitrepo.git
$ vim readme.md
$ git commit -am 'fix for the README file'
$ git push origin master
代码同步(HOOK)
上边git用于做了中心的版本控制
但是还想让服务器接到修改更新后自动同步代码到网站目录中,便于测试开发
如下操作是可以实现

#假定网站目录在/www/web下
cd /home/git/gitrepo.git/hooks
vim post-receive #创建一个钩子
#写入下面内容
GIT_WORK_TREE=/www/web git checkout -f
#保存退出
chown git:git post-receive
chmod +x post-receive
如此,下次提交修改,代码会自动同步到指定目录中

结合idea上传本地版本到远程仓库,参考https://blog.csdn.net/autfish/article/details/52513465

Linux搭建git服务端的更多相关文章

  1. 最全Linux搭建SVN服务端教程

    文章首推 支付宝接口对接 高德地图调用 验证码登录 QQ邮箱登录 今日主题:Linux搭建SVN服务端 简介 相信程序员对SVN还是不陌生的,虽然现在用Git比较多,但是SVN也是用的,SVN可以做代 ...

  2. Centos搭建Git服务端

    首先需要安装git,可以使用yum源在线安装 yum install -y git 创建一个git用户,用来运行管理git服务 adduser git 初始化git仓库(这里我们选择/home/git ...

  3. centos 搭建 git 服务端和客户端

    centos 搭建git需要设置远程服务端和客户端.远程代码存放在服务端,多个客户端可以共享和维护服务端代码. 一.服务端主机 1.创建ssh,大部分默认已经安装,有ssh就跳过 yum instal ...

  4. [Linux] 搭建rsync服务端

    rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输. Linux守护进程的运行方式:1.独立运行(stand-al ...

  5. linux 搭建SVN服务端

    搞了个服务器,然后现在想搞点事情,于是乎整个SVN在上面,算是熟悉下svn的操作过程 以下内容转载自: https://yq.aliyun.com/articles/6693 ------------ ...

  6. [CentOS] 使用gitolite搭建git服务端

    1. 创建用户 #创建gitadmin用户 useradd gitadmin #设置gitadmin密码 passwd gitadmin #创建git用户 useradd git #设置git密码 p ...

  7. gogs搭建git服务教程

    使用gogs搭建自己的git服务!!! 一.GIT服务器搭建方式 上一节课我们讲过GIT是一个分布式版本管理系统,既然是分布那么必定会涉及远程通信,那么GIT是采用什么协议进行远程通信的呢? git支 ...

  8. Windows平台搭建Git服务教程详解

    引言 软件企业的核心就是代码,如何确保代码的安全?如何在团队开发中协同工作?为解决这些问题,我们需要采用相应的管理工具来满足管理的需求.探长从最初的VSS.SVN.TFS到现在的Git存储一路走来,感 ...

  9. Linux服务器配置git服务

    前言 Git是一个非常著名的分布式版本控制系统,而广大开发者更是习惯在最大的远程仓库GitHub上提交自己的代码.但是有时候,一些小项目不值得放到GitHub上去,或是由于隐私问题不好在GitHub的 ...

随机推荐

  1. IDEA打印gc日志,设置JVM参数方法

    打印gc日志 1.对指定运行程序输出GC日志: 点击edit configurations... 在vm options处加入-XX:+PrintGCDetails 测试:代码调用system.gc后 ...

  2. 第七节: EF的三种事务的应用场景和各自注意的问题(SaveChanges、DBContextTransaction、TransactionScope)

    一. 什么是事务 我们通俗的理解事务就是一系列操作要么全部成功.要么全部失败(不可能存在部分成功,部分失败的情况). 举一个事务在我们日常生活中的经典例子:两张银行卡(甲.乙),甲向乙转钱,整个过程需 ...

  3. 点评cat系列-服务器开发环境部署

    我们有三种部署方式:1. docker 部署2. 采用官方的 war 包部署. 3. 源码部署 很显然 docker 部署是最简单的, 我尝试了多次, 都在 cat docker 容器镜像的编译过程失 ...

  4. [物理学与PDEs]第4章第2节 反应流体力学方程组 2.2 反应流体力学方程组形式的化约

    1.  粘性热传导反应流体力学方程组 $$\beex \bea \cfrac{\rd \rho}{\rd t}&+\rho \Div{\bf u}=0,\\ \cfrac{\rd Z}{\rd ...

  5. 2019最新迅为-i.MX6Q开发板资料目录

            迅为IMX6开发板: Android4.4系统  Linux + Qt5.7系统  Ubuntu12.04系统 部分案例:HMI:3D打印机:医疗设备:工控机:触控一体机:车载终端 核 ...

  6. 函数语法:currentStyle、getComputedStyle兼容判断

    var oDiv = document.getElementById('aa'); if(oDiv.currentStyle){ var style = oDiv.currentStyle; aler ...

  7. hibernate之SessionFactory对象

    Factory --- 工厂 利用Configuration得到 hibernate3.版本 SessionFactory factory = Configuration.buildSessionFa ...

  8. ubuntu16.04降级内核版本至3.13.0-85

    1.前言 采用ubuntu16.04在编译实验课程的实例代码simplefs 时,发现编译时报如下错误: 因此需要将ubuntu16.04的内核版本降级为 3.13.0-85-generic 2.修改 ...

  9. npm——安装教程、安装vue脚手架

    npm:是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题.比如常用的有: 1)允许用户从NPM服务器下载别人编写的第三方包到本地使用. 2)允许用户从NPM服务器下载并安 ...

  10. sass 工具库

    github : https://github.com/uustoboy/base_mixins ( 有坑慎用 ) 项目截图: _base_mixins.scss 混合宏的引入文件; _setting ...