Git:安装配置

来自Wikioe
跳到导航 跳到搜索


下载

git-scm Github:git mirror:git

安装

Linux

依赖

Git 的工作需要调用curlzlibopensslexpatlibiconv等库的代码,所以需要先安装这些依赖工具。(已有,一般不需安装)

apt-get
# 安装 git 依赖
apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
yum
# 安装 git 依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

包安装

各 Linux 系统可以使用其安装包管理工具(apt-getyum等)进行安装:

apt-get
# 安装 git
apt-get install git
yum
# 安装 git
yum -y install git

源码

先从git官网下载指定版本源码,然后解压,依次输入:./configmakesudo make install 这几个命令安装到指定目录即可。

# 下载指定版本源码包
wget https://github.com/git/git/archive/v2.21.0.tar.gz

# 解压
tar -zxf v2.21.0.tar.gz

# 切换到 git目录
cd git-2.21.0

# 编译
make prefix=/usr/local all

# 安装
sudo make prefix=/usr/local install

查看Git版本

安装完成,查看已安装的Git版本:

git --version

Windows

下载运行可执行文件.exe,根据向导完成安装即可。
可以使用命令行的git工具(自带了ssh客户端)了,另外还有图形界面的Git项目管理工具。

移除

centos自带Git,7.x版本自带git 1.8.3.1(),安装新版本之前需要卸载旧版本(安装后卸载也可以):

yum remove git

更新

centos自带Git,7.x版本自带git 1.8.3.1(),安装新版本之前需要卸载旧版本(安装后卸载也可以):

  1. 查看版本:
    git --version
    
  2. 更新git:
    #(2.17.1之前)
    git update
    
    #(2.17.1之后,Windows平台)
    git update-git-for-windows
    

配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。

配置等级

这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  1. /etc/gitconfig文件:系统中对所有用户都普遍适用的配置。(使用git config --system设置)
  2. ~/.gitconfig文件:用户目录下的配置文件只适用于该用户。(使用git config --global设置)
  3. 项目的git配置文件(也就是工作目录中的.git/config文件):配置仅仅针对当前项目有效。
每一个级别的配置都会覆盖上层的相同配置,所以.git/config里的配置会覆盖~/.gitconfig(及/etc/gitconfig)中的同名变量。

配置内容

内容 命令 说明
用户信息
 git config --global user.name "eijux"
 git config --global user.email Test@eijux.com
配置个人的用户名称和电子邮件地址
文本编辑器
 git config --global core.editor Vim
设置git默认使用的文本编辑器(一般可能会是 Vi 或者 Vim)
差异分析工具
 git config --global merge.tool vimdiff
设置git在解决合并冲突时使用的差异分析工具(如:vimdiff)

查看配置

查看git配置信息(所有配置):

git config --list
如果出现重复的变量名,说明来自不同的配置文件(/etc/gitconfig~/.gitconfig.git/config),Git采用最后一个(向上覆盖)。

查看git指定配置,如“用户名称”:

git config user.name

如:

Microsoft Windows [版本 10.0.19041.508]
(c) 2019 Microsoft Corporation保留所有权利

D:\git\eijux>git config -l
http.sslcainfo=D:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
user.email=chen@eijux.com
user.name=Eijux
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
gui.wmstate=normal
gui.geometry=1061x563+128+128 233 255
remote.eijux.url=git@github.com:Eijux/eijux.git
remote.eijux.fetch=+refs/heads/*:refs/remotes/eijux/*
branch.master.remote=eijux
branch.master.merge=refs/heads/master

D:\git\eijux>git config -l --global
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
user.email=chen@eijux.com
user.name=Eijux

D:\git\eijux>git config -l --system
http.sslcainfo=D:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false

D:\git\eijux>