登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 462|回复: 0

CENTOS7下摆设Git服务器(超具体教程)

[复制链接]

187

主题

187

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-1-23 10:27:11 | 显示全部楼层 |阅读模式 来自 江苏徐州
BamA7aRNMmMOd78R.jpg

参考1:http://www.cnblogs.com/fly_dragon/p/8718614.html
参考2:http://blog.csdn.net/dumingming_stj/article/details/80551312
删除老版本Git,自带的似乎是1.8
yum remove git
安装新版Git
#安装gcc
yum install gcc
#安装g++
yum install gcc-c++
#安装编译所需的包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker
wget -P /usr/src/git-2.19.1 http://www.kernel.org/pub/software/scm/git/git-2.19.1.tar.gz
#切换到指定目次
cd /usr/src/git-2.19.1/

#解压源码包
tar zxvf git-2.19.1.tar.gz

#进入解压目次
cd git-2.19.1/

#设置安装目次并编译和安装(耐烦等候……)
./configure --prefix=/usr/local/git-2.19.1 && make install

#将编译好的git-2.18.0 bin目次添加到bashrc中,相称于添加全局变量
echo 'export PATH=$PATH:/usr/local/git-2.19.1/bin' > /etc/profile.d/git.sh

#使bashrc立刻见效,全局变量立刻见效
source /etc/bashrc

#检察git版本,假如是版本是git version 2.18.0即大功告成
git --version

#假如发现照旧老版本,再实行一次即可
yum remove git

#至此,CentOS 就安装上了最新版本的 Git。
创建一个git用户
#root用户下创建用户git
id git #检察体系内里是否已经存在此账户
#假如存在删除此用户
userdel -r git
#假如不存在直接添加即可
groupadd git
useradd git -g git
passwd git #为用户git设置一个登录暗码,假如不设置ssh登录,每次clone等操纵都必要此暗码
开启ssh登录(不是必须)
假如不设置每次克隆,推送代码都要输入gjt用户暗码,实在GitHub等网站接纳的ssh登录方式都是接纳的上传公钥方式。以是保举设置。
#最好切换到git用户 否则背面新建的git堆栈都要改权限
su git
cd /home/git
chmod 700 .ssh
#ssh-keygen -t rsa //默认会天生~/.ssh/id_rsa.pub公钥文件。
mkdir /home/git/git-shell-commands #假如没有这个一会本机登录会有题目

#切换到root
su
cd /home/git/.ssh
chmod 600 authorized_keys
vim authorized_keys
#把你客户端天生的公钥复制进去就OK了
#大概是上传当地id_id_rsa.pub 直接改名为authorized_keys(掉进此坑,半天之后才爬出来)
#cat authorized >> authorized_keys

vim /etc/ssh/sshd_config

#开启公钥免暗码登录
RSAAuthentication yes
PubkeyAuthentication yes
初始化Git堆栈
su git
$ cd /home/git
$ git init --bare zhao.git
Initialized empty Git repository in /home/git/zhao.git/
#以上下令会创建一个空堆栈,服务器上的Git堆栈通常都以.git末端。
当地克隆堆栈测试
#假如没有更改过ssh默认的登录端口,默认22
$ git clone git@IP:zhao.git
Cloning into 'test'...
warning: You appear to have cloned an empty repository.

#假如更改过ssh端标语
gcl ssh://git@IP:端标语/~/zhao.git
留意:在服务器上是看不到你上传的这个test.txt文件的。但是,你再次克隆是可以下载到这个文件的。
如图所示:
ePUIrX8L2R6ePIVv.jpg

服务器上:可以看到该目次下什么东西都没有
假如必要同步代码到服务器参考:http://blog.csdn.net/xiaoweite1/article/details/80344289
代码同步到服务器
--(没有多大须要)
登录git用户,在其夹目次下创建一个文件夹www用来同步代码;
O5LJ5i57I5zl5uV9.jpg

然后进入zhao.git/hooks/目次下
[git@VM_0_12_centos ~]$ cd zhao.git/hooks/
#这里我们创建post-receive文件
vim post-receive

#在该文件里输入以下内容
#!/bin/bash
git --work-tree=/home/git/www checkout -f

#由于该文件实在就是一个shell文件,我们还应该为其设置可实行权限
chmod +x post-receive
然后当地再次推送代码,在www这个文件夹下是可以看到文件变更的,但是服务器并不能更改,以是我说并没有什么卵用。
v840SzaEou01a62U.jpg

克制 git 用户 登录服务器
之前在服务器端创建的 git 用户不答应 ssh 登录服务器,否则会有许多安全题目出现
编辑 /etc/passwd
[root@localhost .ssh]# vim /etc/passwd
找到:
git:x:502:504::/home/git:/bin/bash
修改为
git:x:502:504::/home/git:/usr/local/git-2.19.1/bin/git-shell
设置乐成之后,实验从root切换到git用户登录只能举行git操纵,大功告成:
V7Jz41z94PhMmm76.jpg

添加一个新的项目到git服务器
1.服务器上先初始化一个堆栈
QnuUNh7UK7nHHTp6.jpg

2.当地拉取项目即可
B7psuvu4CUu7j5uC.jpg

删掉重新拉取一下,刚刚上传的文件可以拉取到:
YccG31R25C42e4CR.jpg

喜好文章的小同伴可以点一波收藏加关注。




上一篇:一起来学大数据|Linux之CentOS7及JDK安装,入门必学
下一篇:centos7重置暗码、单用户模式、救济模式、ls下令、chmod下令 ...
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-6-26 14:01 , Processed in 0.063456 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表