Git 分布式版本控制器
一、简介
Git是一个免费且开源的分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。Git易于学习, 占地面积小,具有闪电般的快速性能。它具有诸如Subversion,CVS,Perforce和ClearCase之类的SCM工具,并且具有廉价的本地分支,方便的暂存区域和 多个工作流等功能。
二、安装(Linux)
# git --version 查看是否已经安装git服务?
git version 1.8.3.1 说明已经安装git服务
# git remove git 删除原先的git服务
# yum info git 查看yum源仓库的git信息
...
已加载插件:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
* base: mirror.bit.edu.cn
* extras: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.tuna.tsinghua.edu.cn
可安装的软件包
名称 :git
架构 :x86_64
版本 :1.8.3.1
...
# yum install git 安装git
...
已安装:
git.x86_64 0:1.8.3.1-20.el7
作为依赖被安装:
perl-Error.noarch 1:0.17020-2.el7 perl-Git.noarch 0:1.8.3.1-20.el7 perl-TermReadKey.x86_64 0:2.30-20.el7 rsync.x86_64 0:3.1.2-6.el7_6.1
完毕!
三、搭建git中央仓库
- 创建git用户用于进行git服务管理操作
# groupadd git //创建git用户组
# useradd git -g git //创建git用户
# passwd git //为git用户设定密码
- 限制git账户登录(该账户不应被用于远程登陆)
# vi /etc/passwd //打开配置文件
原始值:git:x:1000:1000::/home/git:/bin/bash
修改为:git:x:1000:1000::/home/git:/usr/bin/git-shell
- 开启SSH RSA 验证
此处有坑,详解blog.csdn.net/qq_37912061…
因为关闭git账户的远程登录,因此需要启动ssh的rsa验证以确保可以使用该种方式连接到git服务,修改如下配置
# vi /etc/ssh/sshd_config //打开配置文件
PubkeyAuthentication yes //这个选项默认是注释的且默认开启的。去掉注释即可
<!-- 修改完之后, 重启SSH服务 -->
# service sshd restart
- 创建git中央仓库
<!-- 进入目录 -->
# cd /home/git
<!-- 创建 Git 仓库name为仓库名 -->
# git init --bare name.git
建立一个共享的仓库,只能接受push/pull ,不能本地commit
<!-- 创建目录 -->
# mkdir .ssh
<!-- 进入目录 -->
# cd .ssh
<!-- 创建文件 -->
# touch authorized_keys
#打开客户端中的 “id_rsa.pub” 文件,将该文件中的全部内容拷贝至服务端中的 “authorized_keys” 文件中。
<!-- 指定为 Git 账户 -->
# chown -R git.git name.git
# chown -R git.git /home/git/.ssh/
- 客户端 验证 Git Server
<!-- 在客户端克隆中央仓库 ip:git服务端ip地址 name:仓库名 -->
$ git clone git@ip:/home/git/name.git
Cloning into 'name'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.