OS:CentOS-6.5.mininal (NULL)
GIT:git version 2.8.2
注释:1.NULL特指什么软件都未安装(纯净版)
2.OS 新建了一个用户 xiaolu
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
根据CentOS的版本下载不同的镜像
[root@lucia ~]# su xiaolu [xiaolu@lucia root]$ cd /etc/yum.repos.d/ [xiaolu@lucia yum.repos.d]$ sudo yum -y install wget [xiaolu@lucia yum.repos.d]$ sudo mv CentOS-Base.repo CentOS-Base.repo.bak [xiaolu@lucia yum.repos.d]$ sudo wget -O CentOS-Base.repo https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=2 # wget -O --output-document=FILE 指定下载目录和文件名 [xiaolu@lucia yum.repos.d]$ yum makecache
附-科大源:https://lug.ustc.edu.cn/wiki/mirrors/help/centos
[xiaolu@lucia yum.repos.d]$ cd /tmp [xiaolu@lucia tmp]$ sudo yum -y install ntpdate.x86_64 [xiaolu@lucia tmp]$ sudo ntpdate 0.pool.ntp.org 1 Apr 16:40:49 ntpdate[7329]: no server suitable for synchronization found --------------------------------------------------------------------------------- [xiaolu@lucia tmp]$ sudo yum -y install rdate.x86_64 [xiaolu@lucia tmp]$ sudo rdate -s time.nist.gov [xiaolu@lucia tmp]$ date Sun May 1 23:17:19 CST 2016
注:ntpdate校准报错选择rdate(很可能是防火墙封锁了udp的123端口, 如果关闭的防火墙问题依旧, 很可能是上层路由的设置有问题, 如果这种情况, 我们就只能通过tcp来更新时间)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
源代码编译GIT之前,确保系统安装了所需的包或者通过以下命令来安装它
[xiaolu@lucia tmp]$ sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker package -y [xiaolu@lucia tmp]$ sudo yum -y install gcc (下载 编译器 )
从 git-scm 下载最新Git源代码或者简单的使用以下载命令下载Git 2.8.2
[xiaolu@lucia tmp]$ sudo wget -c https://www.kernel.org/pub/software/scm/git/git-2.8.2.tar.gz [xiaolu@lucia tmp]$ tar -zxvf git-2.8.2.tar.gz [xiaolu@lucia tmp]$ cd git-2.8.2 [xiaolu@lucia git-2.8.2]$ make prefix=/usr/local/git all [xiaolu@lucia git-2.8.2]$ sudo make prefix=/usr/local/git install [xiaolu@lucia git-2.8.2]$ su root [root@lucia git-2.8.2]# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc # 设置环境变量 [root@lucia git-2.8.2]# source /etc/bashrc
完成以上步骤后,使用以下命令检查GIT版本
[xiaolu@lucia git-2.8.2]$ git --version git version 2.8.2
Step 4:命令补全
Linux的shell环境通过bash-completion软件包提供命令补齐功能,在录入命令参数时按一次或两次TAB键可实现参数的自动补齐或提示
[xiaolu@lucia git-2.8.2]$ sudo cp contrib/completion/git-completion.bash /etc/bash_completion.d/ #将Git源码包中的命令补全脚本肤质到bash-completion对应的目录中 [xiaolu@lucia git-2.8.2]$ . /etc/bash_completion.d/git-completion.bash #重新加载自动补齐脚本,使之在当前的shell中生效
为了能够在终端开启时自动加载脚本,需要修改/etc/profile文件和~/.bashrc文件
[root@lucia git-2.8.2]# sudo cat >> ~/.bashrc <<EOF > if [ -f /etc/bash_completion.d/git-completion.bash ]; then > . /etc/bash_completion.d/git-completion.bash > fi > EOF [xiaolu@lucia git-2.8.2]$ su root [root@lucia git-2.8.2]# sudo cat >> /etc/profile <<EOF > if [ -f /etc/bash_completion.d/git-completion.bash ]; then > . /etc/bash_completion.d/git-completion.bash > fi > EOF
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
相关说明:
GIT可以在提交说明中使用中文,但是需要对Git进行配置但对于用中文来命名文件、目录和引用,前提是使用UTF-8 字符集的环境下
UTF8字符集:
1、在提交时,可以在提交说明中输入中文
2、显示提交历史,能够正常显示提交说明中的中文字符
3、可以添加名称为中文的文件,并可以在同样使用UTF-8字符集的Linux环境中克隆和检出
4、可以创建带有中文字符的里程碑名称
❀ 在默认设置下,中文文件名在工作区状态输出、查看历史更改概要,以及在补丁文件中,文件名中的中文不能正确的显示,而是显示为八进制的字符编码,如下
[xiaolu@lucia rs-project]$ git status -s ?? "\346\265\213\350\257\225.txt" [xiaolu@lucia rs-project]$ printf "\346\265\213\350\257\225.txt\n" 测试.txt
❀ 解决方法:通过将Git配置变量 core.quotepath 设置为 false
[xiaolu@lucia rs-project]$ git config --global core.quotepath false[xiaolu@lucia rs-project]$ [xiaolu@lucia rs-project]$ git status -s ?? 测试.txt
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
make prefix=/usr/local/git all 报错
目前我碰到的报错有两种:
时间没有校准(看见 in the future 就是时间没有校准,校准后重新make)
ake[1]: Warning: File `Makefile' has modification time 2.5e+06 s in the future /usr/bin/perl Makefile.PL PREFIX='/usr/local' INSTALL_BASE='' --localedir='/usr/local/share/locale' Writing perl.mak for Git make[1]: warning: Clock skew detected. Your build may be incomplete. GEN git-add--interactive make[1]: Warning: File `Makefile' has modification time 2.5e+06 s in the future Writing perl.mak for Git make[2]: Warning: File `Makefile.PL' has modification time 2.5e+06 s in the future Writing perl.mak for Git make[2]: *** [perl.mak] Error 1 make[1]: *** [instlibdir] Error 2 make: *** [git-add--interactive] Error 2
2. 第二种报依赖包错误,导致make失败
本文OS是纯净版,实际上真正OS环境下许多依赖包已经安装,且通过yum仓库安装的版本都较老,换yum源后将提示的相关依赖包卸载(rpm -e),然后重新yum安装一下
#---------------------------------------------------------------------------------------------------------------#
排版真心好累
以此文章献给@隔壁老王灬请客吃的兰州拉面
跟之前最爱的沙县小吃绝配的{飘香拌面+柳叶蒸饺},不相上下呢
Lucia 2016/05
#----------------------------------------------------------------------------------------------------------------#