GIt问题解决

Git Trouble Shooting List

1, error: server certificate verification failed 解决方案

error: server certificate verification failed

在stackoverflow 上有一页专门解答:server certificate verification failed,针对不同情况,里面有很多的解决方案。

我的属于系统时间错误,和下面这个问题相同:

Another cause of this problem might be that your clock might be off. Certificates are time sensitive.
This was my problem. My university was blocking ntp packets, which was preventing my system from updating time. 
Once I configured the university ntp servers things were working again. Thanks for this tip! –  Kyle Mar 9 at 16:51

问题重现

****@****:~$ date -R
Sat, 18 Jan 2014 06:11:27 +0800
****@****:~$ git clone https://github.com/appache/hadoop.git
Cloning into 'CPluslab'...
error: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none while accessing https://github.com/bugmeout/CPluslab.git/info/refs
fatal: HTTP request failed

由于不能够和时间服务器通信,用命令修改系统时间为当前时间之后,问题得到解决。

sudo date -s 'xx:xx:xx xxxx-xx-xx'

2,git设置代理

git config --global http.proxy http://ip:port
git config --global https.proxy http://ip:port

3,CentOS上Git升级

1)下载依赖:

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc xmlto

# yum install  gcc perl-ExtUtils-MakeMaker  
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
# tar zxvf libiconv-1.14.tar.gz 
# cd libiconv-1.14
# ./configure --prefix=/usr/local/libiconv
# make && make install

2)卸载Centos自带的git1.7.1:

通过git –version查看系统带的版本,Cento6.5应该自带的是git版本是1.7.1

# yum remove git

3)下载git2.2.1并将git

# wget https://github.com/git/git/archive/v2.2.1.tar.gz
# tar zxvf v2.2.1.tar.gz
# cd git-2.2.1
# make configure
# ./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
# make all doc
# make install install-doc install-html

4)配置环境变量

# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc

5)查看版本号

# git --version
git version 2.2.1

6)可能遇到的问题

我在make all doc 时发生报错,发现是没找到xmlto命令,因此需要安装xmlto,现在已经加到了下载依赖的命令中。在实际过程中可能会遇到各种不同的依赖缺失,仔细看输出提示然后按需下载,重新运行即可。

参考:http://www.tuicool.com/articles/Y3eqIf

7)删除远程分支

git push origin --delete 

你可能感兴趣的:(Linux)