一:安装并配置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安装成功
二、将Git初始化,并生成授权证书
Git初始化设置,设置用户名he邮箱地址
git config --global user.name "JavaCadeliu" git config --global user.email "1136808529@qq.com"
可以查看设置的信息
[root@localhost git-core]# git config --list user.name=JavaCadeliu user.email=1136808529@qq.com
下一步,生成授权证书
温馨提示:
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次需要确认,
第一次:生成公钥和私钥的文件名称(默认即可)
第二次:生成证书的密码(默认为空即可)
第三次:确认证书密码(默认为空即可)
到此生成是证书完成!!!
- 查看公钥私钥是否在系统中生成
- 进入用户目录执行命令:
[root@localhost ~]# cd ~/.ssh/ [root@localhost .ssh]# ls id_rsa id_rsa.pub [root@localhost .ssh]#
id_rsa:这个是私钥
id_rsa.pub:这个是公钥
下一步,你把公钥证书注册到github上
【打开github主页】-【登录】-【Setting】-【SSH and GPG keys】
在测试服务器上编辑公钥,并复制到github中:
vim id_rsa.pub
这样就完成了公钥的添加到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.
出现上面红框中的信息,说明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
取消代理:
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缓存