服务器搭建Git服务

服务器搭建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 仓库及管理》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • [在 Linux 下搭建 Git 服务器] 环境:服务器 CentOS6.6 + git(version 1.7....
    9ef822571b70阅读 897评论 0 5
  • 1、安装git 服务器端: ①先检查服务器有没有自带或者安装git;查询Git版本 [root@loc...
    Mlethe阅读 263评论 0 0
  • 安装git服务器yum install git 创建一个 git用户用了管理git服务 创建一个git仓库, 比如...
    yandaren阅读 316评论 0 0
  • 笔记本电脑都是已经每家必备的了,在使用的过程中时间久了难免会出现一些问题,这次电脑管家就跟大家聊一聊你的笔记本是不...
    Angelo_s阅读 2,440评论 0 3