git
对于开发者来说属于必备工具中的必备工具了。何况,没有 git
的话,「面向 github 编程」 从何说起,如同一个程序员断了左膀右臂。
本篇文章将介绍如何在服务器(centos)上安装最新版本的 git 及其基本配置
- 使用源码编译安装 git
- 使用 ansible 自动化安装 git
- git 基本配置
❝你对流程熟悉后,特别是了解 ansible 后,只需要一分钟便可以操作完成 ❞
- 原文地址: 服务器上 git 的安装及基本配置[1]
- 系列文章: 山月的服务器运维笔记[2]
安装
代码语言:javascript复制$ yum install git
如果使用 yum
来安装 git
的话,那实在没有必要单开一篇文章了,但好事多磨。那使用 yum
的弊端在哪里?我们知道,yum
为了保证它的软件的稳定性,往往软件的版本都会很老,以至于非常不好用。
「而且最重要的是 yum
安装的 git
没有语法高亮!」
安装最新版本
安装最新版本,或者说稳定版本,可以充分体验新版本带来的特性,从而使自己更舒服一些。从源码安装 git
是最无拘无束最灵活的安装方法,但同时也是最繁琐的方法。
关于源码编译安装详细教程可以参考 https://github.com/git/git[3]。
在编译之前需要先安装依赖如下
代码语言:javascript复制gettext-devel
expat-devel
curl-devel
zlib-devel
perl-devel
openssl-devel
subversion-perl
make
gcc
随后根据文档进行源码编译安装:
代码语言:javascript复制# 使用旧版本 git 下载源码
$ git clone https://github.com/git/git.git
$ git checkout v2.26.2
$ make prefix=/usr all
$ make prefix=/usr install
查看版本号,安装成功
git version
,查看版本号,此时为 2.26.2
$ git version
git version 2.26.2
再用它 git status
,查看下语法高亮效果
git 高亮效果
使用 ansible 自动化安装
❝如果你对 ansible 不够了解,可以参考我的文章 ansible 入门指南。 ❞
而对于安装 git,如果采用以上源码编译方法则过于耗时及繁琐,而如果我们使用 ansible
进行自动化运维的话,选择一个好用的 Ansible Role
就可以了,此处我们选择 geerlingguy.git[4]。
$ ansible-galaxy install geerlingguy.git
配置 ansible playbook
,指定变量,从源码安装,并安装最新版本。
hosts: all
roles:
- role: geerlingguy.git
vars:
# 从源码安装
git_install_from_source: true
# 安装最新版本
git_install_from_source_force_update: true
使用 ansible-playbook
对服务器进行批量安装
$ ansible-playbook -i hosts git.yaml
❝关于我服务器所有的 ansible role 配置,可以参考我的配置文件 shfshanyue/ansible-op[5] ❞
基本配置
在服务器中安装完 git 后,即可对它进行基础配置。全局配置邮箱及用户名,此时就可以愉快地在服务器中使用 git
管理代码了
$ git config --global user.name shfshanyue
$ git config --global user.email xianger94@gmail.com
面向 github 编程
但是现在就可以面向 github
编程了吗?不!
使用 ssh -T
测试连通性
$ ssh -T git@github.com
Permission denied (publickey).
此时需要配置 ssh key
来保证正确地面向 github 编程,请关注并查看下篇文章 服务器上 ssh key 管理及 github 配置[6]
关注我
❝我是山月,我会定期分享全栈文章在个人公众号中。 ❞
山月的全栈成长之路
Reference
[1]
服务器上 git 的安装及基本配置: https://github.com/shfshanyue/op-note/blob/master/git.md
[2]
山月的服务器运维笔记: https://github.com/shfshanyue/op-note
[3]
https://github.com/git/git: https://github.com/git/git
[4]
geerlingguy.git: https://github.com/geerlingguy/ansible-role-git
[5]
shfshanyue/ansible-op: https://github.com/shfshanyue/ansible-op
[6]
服务器上 ssh key 管理及 github 配置: https://github.com/shfshanyue/op-note/blob/master/ssh-setting.md