git服务器搭建,CentOS7

yum安装:(查看yum的git仓库信息命令:# yum info git 卸载 yum方式安装的git:# yum remove git

此方式安装版本较老 (参考资料) 

下载安装包安装:

此方式安装版本较新 (参考资料)

1 依赖库安装

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install gcc perl-ExtUtils-MakeMaker

2 在 /usr/local/  目录下新建git文件夹(mkdir git)并进入git目录下载较新的安装包

# wget https://github.com/git/git/archive/v2.9.2.tar.gz

3 解压

# tar -xzvf v2.9.2.tar.gz

4 安装

# cd git-2.9.2
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install

5 添加环境变量

# vim /etc/profile   (  提示没有vim命令安装即可:# yum install vim)

文件最后添加    export PATH="/usr/local/git/bin:$PATH"

# source /etc/profile 设置环境变量立即生效

6 将git设置为默认路径

# ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 

# ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack 

7 创建git用户

groupadd git

# useradd git

# passwd git

8 git服务器打开RSA认证

 /etc/ssh/sshd_config文件中的

AuthorizedKeysFile .ssh/authorized_keys  (去掉前面#)

PubkeyAuthentication yes (去掉前面#)

/etc/ssh/ssh_config文件中的

 RSAAuthentication yes (去掉前面#)

可以看出公钥存放在.ssh/authorized_keys文件中

我们在/home/git/目录下新建.ssh目录,在.ssh目录下创建authorized_keys文件(命令touch authorized_keys

将window下生成的公钥导入

   生成公钥:windows下,任何地方右键鼠标,选择Git Bash Here,输入ssh-keygen命令生成公钥(一般在C:\Users\你的电脑 名称\.ssh\id_rsa.pub,生成公钥会有提示),用WinSCP或SecureCRT或SecureFx等传输文件到新建 authorized_keys同级目录下,用putty或xshell等命令行工具切换到新建的authorized_keys的同级目录下输入命令:cat id_rsa.pub >> authorized_keys 即可导入公钥

9 初始化git仓库(Linux(CentOS)下)

进入到 /home/git/ 目录下输入

# git init --bare testrepo.git

# chown -R git:git testrepo.git

初始化一个git空仓库,修改所属组的所属用户

10 本地克隆仓库(Win下)

 在一个空文件夹下,右键选择 Git Bash Here, 输入命令

git clone git@服务器ip:/home/git/testrepo.git

克隆了一个空仓库到本地

只有一个testrepo文件夹

进入到本地的testrepo文件夹下,输入命令 touch test.txt创建一个新文件,你也可以vi/vim编辑文件内容

然后  

git add .            #添加到缓存区
git commit -m 'create a new file'           #提交到本地
git push          #提交到服务器

可以在另外新建空文件夹在clone一次验证是否push成功。

11.禁止Shell登录

出于安全考虑,git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。 
找到类似下面的一行:

git:x:502:502::/home/git:/bin/bash

改为

git:x:502:502::/home/git:/usr/local/git/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出


遇到的错误error:src refspec master does not match any

不能提交空目录,在目录下新建文件在提交参考

参考 

http://blog.csdn.net/permanent_2008/article/details/73839315

http://blog.csdn.net/martinwangjun/article/details/78780885

https://www.jianshu.com/p/8d26730386f3  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值