美文网首页
服务器搭建Git服务

服务器搭建Git服务

作者: 阿西Enzo | 来源:发表于2018-05-09 10:35 被阅读0次

服务器搭建Git服务

@(计算机基础)[git, 版本管理]


[TOC]

1.整体部署思路

    下载git 安装包(rpm)-->安装git服务-->测试git是否安装成功-->配置对外端口(git 使用ssh:22进行传输)-->创建git管理账户-->在git管理账户下创建仓库目录-->初始化git仓库-->客户端git工具安装-->客户端生成ssh公钥私钥-->服务器打开ssh的rsa认证-->导入客户端的ssh公钥-->配置相关文件的用户及权限-->客户端clone 仓库-->客户端修改-->提交-->push代码-->查看服务器代码是否同步

2.安装

1. 下载安装

# 运行环境: linux center-os-7 64
# 推荐使用 yum安装
# 查看已安装程序中是否有git
yum list installed | grep git
# 查看git 安装源信息 本次安装版本 1.8.3.1(需要当前用户是管理员)
sudo yum install -y git
查看git 安装源信息

2. 查看安装信息

# 查看git 运行目录
whereis git
# 查看git 版本信息
git --version
查看安装后信息

3.初始化配置

1. 新建git管理账户

# 查看是否已经存在git 用户
id git
id git: no such user
# 创建git 用户用来管理git 服务
sudo adduser git
# 设置密码
sudo passwd git

2. 配置仓库目录及初始化

# 切换至git 用户
su git
cd ~
# 创建git 仓库根目录(该目录权限归为 git)
mkdir -p ~/data/git
# 创建测试仓库
mkdir -p ~/data/git/gittest.git
cd ~/data/git/
# 保证该目录归git用户所有 
ll 
# 如果不是,请使用 chown 修改目录所有者
chown -R git:git ~/data/git/gittest.git/
# 使用 git 初始化仓库(将 git 用户加入到管理组 作为中央仓库,一定要加上shared,否则后去push 会deny)
sudo git init --bare ~/data/git/gittest.git --shared
# `Initialized empty Git repository in /home/git/data/git/gittest.git/.git/`
# 查看仓库目录
cd ~/data/git/gittest.git/.git
ll
查看仓库目录

3. 配置相关目录权限

# 修改目录权限
su root
chown -R git:git /home/git/data/git/gittest.git
# 回到git
su git
修改目录权限

4.客户端配置

1. 客户端工具安装

1.1 windows

请下载git 工具,并安装(傻瓜式的,下下来点击安装即可,下载地址)

1.2 MacOS

Mac 推荐使用brew进行安装
sudo brew install git

1.3 clone remote repository

# 克隆项目
git clone git@serverIP:/home/git/data/git/gittest.git
# 提示 unkonw host 需要配置ssh key
clone remote repository

2. 客户端获取ssh 公钥私钥

2.1 生成ssh key

推荐使用 ssh-keygen 工具,Mac系统自带, windows系统,可以通过上述的git 工具(git bash)内的ssh-keygen


生成ssh key
rsa

5.服务端ssh配置

1. 开放rsa认证

  • 切换至root 用户
su root
  • 开放rsa认证 编辑 /etc/ssh/sshd_config
    vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile      .ssh/authorized_keys
  • 保存配置,并重启sshd 服务
    /etc/rc.d/init.d/sshd restart
    开放ssh 的rsa认证

2. 导入客户端ssh rsa公钥证书

# 上述中 AuthorizedKeysFile 指定的值 就是授权公钥证书存放位置,我们使用git进行连接的话,应该配置到/home/git下
su git
cd ~
ls -al
mkdir .ssh
ls -al
# windows 使用git bash 将公钥导入至服务器,Mac用户直接在terminal中运行
ssh git@ServerIP 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
ssh

6.客户端测试

1. 连接测试

git clone git@serverIP:/home/git/data/git/gittest.git
# 成功!

2. status\add\commit\push 测试

# 创建readme.md
cd ./gittest
echo '#Hello Git'>readme.md
# 查看状态
git status
# 将当前目录所有文件添加进工作空间
git add .
# 查看状态
git status
# 将本地工作空间 提交到本地仓库
git commit
# 将本地仓库分支 同步到远程分支上(这里如果是deny, 确认一下初始话中央git仓库初始化时,是否添加--shared参数)
git push origin master:master
image.png
image.png
image.png

7.关闭git用户ssh登陆

编辑/ect/passwd
vi /ect/passwd
修改
git:x:502:504::/home/git:/bin/bash > git:x:502:504::/home/git:/bin/git-shell

8. 参考

参考: Meadows of Heaven《在 Linux 下搭建 Git 服务器》
推荐: qiuri2008 《Git 仓库及管理》

相关文章

网友评论

      本文标题:服务器搭建Git服务

      本文链接:https://www.haomeiwen.com/subject/hrknrftx.html