玖叶教程网

前端编程开发入门

Linux教程:CentOs7下安装Git的常用命令

点击上方关注订阅黑码教主获取更多精彩内容

查看 yum 源仓库的 Git 信息:

yum info git

yum中最新的Git一般比较低,如果无所谓的话,可以直接使用以下命令安装

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

如需卸载 yum安装的git,使用

yum remove git

手动下载安装git

$ mkdir /usr/local/git && cd /usr/local/git
$ wget https://github.com/git/git/archive/v2.9.2.tar.gz
$ tar -xzvf v2.9.2.tar.gz

编译安装Git

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

如果出现错误 error: curl/curl.h: No such file or directory

yum install libcurl-dev libcurl-devel

编译安装git提示:Can't locate ExtUtils/MakeMaker.pm in @INC

yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

添加到环境变量

$ vim /etc/profile
export PATH="/usr/local/git/bin:$PATH"
$ source /etc/profile

查看Git版本

$ git --version

将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 

创建一个Git用户组和用户

$ groupadd git
$ useradd git -g git
$ passwd git

useradd 用户组 -g git:在当前路径下生成一个用户组名称的目录

passwd git:为git用户组添加密码

切换到git用户

$ su - git

创建Git密钥

注册用户名和邮箱

$ git config --global user.name "user.name"
$ git config --global user.email "user.email"

查看是否存在ssh keys

$ cd ~/.ssh

若出现“No such file or directory”,则表示需要创建一个ssh keys。

创建新的 ssh keys

 $ ssh-keygen -t rsa -C "your email"
 
 # 默认在当前位置创建rsa密钥

Git服务器打开RSA认证

$ vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

从以上的AuthorizedKeysFile的值可以看出,默认keys是存放于 .ssh/中的,所以我们需要

$ cd /home/git/
$ mkdir .ssh
$ vim .ssh/authorized_keys

导入客户端公钥

$ cat id_rsa.pub >> .ssh/authorized_keys

在authorized_keys内,每行的公钥代表一个客户端公钥

权限修改

$ cd /home/git/
$ mkdir .ssh #新建文件夹
$ chmod 700 .ssh 
$ touch .ssh/authorized_keys #新建文件
$ chmod 600 .ssh/authorized_keys

初始化Git仓库

$ cd /home/git
$ git init --bare test.git
Initialized empty Git repository in /home/git/test.git/
#修改工作区的用户和用户组,用于 git 的receive 勾子有权限更新
$ chown git:git -R test.git

从本地克隆仓库

$ git clone git@your-ip:test.git
Cloning into 'test'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

重启sshd服务

systemctl restart sshd.service
systemctl status sshd.service #查看ssh服务的状态
systemctl start sshd.service #开启ssh服务
sytemctl enable sshd.service #ssh服务随开机启动,还有个disabled
systemctl stop sshd.service #停止
正常情况下应该是Active:active(running)

如果你觉得本篇还不错,请点赞关注!

文章由黑码教主创作,仅代表个人观点,配图源于网络版权归原作者所有,如有侵权联系删除!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言