Linux下安装Git


一:安装并配置Git


Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理,是目前使用范围最广的版本管理工具。

这篇博客,介绍下Linux下安装Git的步骤,仅供参考,当然,还是yum安装,比较简单方便。。。

更多关于Git的内容,请看下面的链接:

Git官方文档:Git-Book

Git工作流:深入理解学习Git工作流


1、执行安装

连接到服务器并登录成功后,输入如下指令,进行下载安装:

 yum install git

界面显示如下:

出现询问是否下载时,输入y,点击回车,耐心等待安装完成:


2、验证安装结果

输入命令:

 git --version ,查看安装的Git版本,验证是否安装成功;


3、查看安装信息

Git默认安装在/usr/libexec/git-core目录下,可输入指令,查看安装信息:


4、存在的问题

使用yum安装确实简单方便,但yum存在一个问题就是安装的版本不好控制,如上图所示,安装的版本为1.8.3,这个版本太老了。

登录github的Git版本发布界面,可以看到目前最新的版本为2.17,如下图所示:

如果需要安装最新的版本Git,可以从github下载最新的源码进行编译,然后安装。


5、源码编译安装Git

大体的安装步骤如下:

①、获取github最新的Git安装包下载链接,进入Linux服务器,执行下载,命令为:

 wget https://github.com/git/git/archive/v2.17.0.tar.gz ;

②、压缩包解压,命令为:

 tar -zxvf v2.17.0.tar.gz ;

③、安装编译源码所需依赖,命令为:

 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 耐心等待安装,出现提示输入y即可;

④、安装依赖时,yum自动安装了Git,需要卸载旧版本Git,命令为:

 yum remove git 出现提示输入y即可;

⑤、进入解压后的文件夹,命令

 cd git-2.17.0

然后执行编译,命令为

make prefix=/usr/local/git all 耐心等待编译即可;

⑥、安装Git至/usr/local/git路径,命令为

 make prefix=/usr/local/git install ;

⑦、打开环境变量配置文件,命令

 vim /etc/profile

在底部加上Git相关配置信息:

PATH=$PATH:/usr/local/git/bin

export PATH

然后保存,退出!


⑧、输入命令 git --version ,查看安装的git版本,校验通过,安装成功。

如果看不到版本信息,重启下linux 系统


看到git版本信息,说明git安装成功



image


二、将Git初始化,并生成授权证书

  • Git初始化设置,设置用户名he邮箱地址

git config --global user.name "JavaCadeliu"
git config --global user.email "1136808529@qq.com"

image

image




  • 可以查看设置的信息


[root@localhost git-core]# git config --list
user.name=JavaCadeliu
user.email=1136808529@qq.com


image

注:下图是从别的地方复制来的

在这里插入图片描述


  • 下一步,生成授权证书

温馨提示:
git的认证授权,是基于公钥私钥的证书体系,因此,需要授权证书来保证测试应用服务器和git server之间的正常的认证授信。

  • 在命令行中输入生成证书的语句:
[root@localhost ~]# ssh-keygen -t rsa -C "1136808529@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
6c:f1:19:b0:9e:a5:a1:8e:42:f5:2f:fc:d2:f0:ae:e1 1136808529@qq.com
The key's randomart image is:
+--[ RSA 2048]----+
|        .        |
|         o       |
|    .   + o      |
|   . . + B o     |
|  .   o S o      |
| .   +.o         |
|  . . =+.        |
|   . ..+o        |
|      E+o        |
+-----------------+
[root@localhost ~]#

执行命令后,会有3次需要确认,
第一次:生成公钥和私钥的文件名称(默认即可)
第二次:生成证书的密码(默认为空即可)
第三次:确认证书密码(默认为空即可)

image

到此生成是证书完成!!!

  • 查看公钥私钥是否在系统中生成
  • 进入用户目录执行命令:
[root@localhost ~]# cd ~/.ssh/
[root@localhost .ssh]# ls
id_rsa  id_rsa.pub
[root@localhost .ssh]#

image

id_rsa:这个是私钥
id_rsa.pub:这个是公钥

  • 下一步,你把公钥证书注册到github上

【打开github主页】-【登录】-【Setting】-【SSH and GPG keys】

image

image




在测试服务器上编辑公钥,并复制到github中:

vim id_rsa.pub

image

image

image


这样就完成了公钥的添加到github上了

验证git配置是否正确

ssh git@github.com
[root@localhost .ssh]# ssh git@github.com
The authenticity of host 'github.com (192.30.255.113)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.255.113' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0
Hi JavaCadeliu! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

image


出现上面红框中的信息,说明Linux系统和github可以正常的连接了
到此,git设置全部完成!!


三:git clone出现 fatal: unable to access 'https://github.com/...'的解决办法(亲测有效)

如下图所示,当我试图克隆别人的repo时,会发生这样的错误,当我从git:/而不是https://,克隆时,它工作得很好。

发生这种情况是因为代理是在git中配置的。既然它是https代理(而不是http)git config http.proxy和git config --global http.proxy也无济于事。

解决方案一


1、看看你的git配置


git config --global -l

如果你没有任何与https代理相关的内容,例如https_proxy = …问题不在这里。

如果您有与https代理相关的内容,请将其从〜/ .gitconfig文件中删除,然后重试。

2、如果仍然不起作用,请取消设置环境变量


env|grep -i proxy

你应该有一行或几行https_proxy = …

使用以下内容逐个取消设置:取消设置https_proxy(或HTTPS_PROXY,具体取决于变量的名称)

3、再次检查环境变量


env|grep -i proxy

如果它没有显示任何你应该是好的。

注意:此解决方案可以应用于http和https代理问题。只是变量名称从https更改为http。

解决方案二


在开启shadowsocks的前提下,手动配置git的代理。git客户端输入如下两个命令就可以了。

git config --global http.proxy http://127.0.0.1:1080

git config --global https.proxy http://127.0.0.1:1080
http://也可以改成sockets5://,但是区别在于:socks5不支持通过pubkey免密登录github,每次提交代码只能输入用户名和密码。http可以支持免密登录。

取消代理:

git config --global --unset http.proxy

git config --global --unset https.proxy

其实方案一和方案二是同一种方法,不过方案二更加具体一点罢了,大部分问题都可以用方案二解决,当方案二无效时,考虑使用方案一。



四:完美解决 fatal: unable to access ‘https://github.com/.../.git‘: Could not resolve host: github.com

只需要在命令行中执行

git config --global --unset http.proxy
git config --global --unset https.proxy

#解决方案:cmd下命令执行 ipconfig/flushdns
#清理dns缓存







posted @ 2021-04-06 11:23  一品堂.技术学习笔记  阅读(13)  评论(0编辑  收藏