安装

Centos/RedHat
yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
Debian/Ubuntu
apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev

解压安装下载的源码包:

tar -zxf git-1.7.2.2.tar.gz
cd git-1.7.2.2
make prefix=/usr/local all
sudo make prefix=/usr/local install
使用终端指令安装
Debian/Ubuntu
apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev

apt-get install git

git --version
git version 1.8.1.2
CentOS/RedHat
yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel

yum -y install git-core

git --version
git version 1.7.1

完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。

在开始菜单里找到 Git -> Git Bash,会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。

Mac 自带 git 并且随着系统版本的更新,自带的 git 也会升级到最新,一般无需手动安装。

配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

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

用户信息

git config --global user.name xaoxuu
git config --global user.email git@xaoxuu.com
  • 如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
  • 如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

查看配置信息

git config --list
http.postbuffer=2M
user.name=xaoxuu
user.email=git@xaoxuu.com

windows下 git-bash 美化

尽管现在 wsl+linux 能玩出花来,但是以前都是 babun+git-bash 为主力的,那不美化下,windows 下的终端都没法看,就算现在要是不小心切到 git-bash ,而不想出现恶心的割裂感~

具体配置
.minttyrc 字体和配色方案

再账户目录下新建 ~/.minttyrc 文件

Columns=106
Rows=58
Font=Consolas
FontHeight=13
CursorType=block
CursorBlinks=no
Transparency=off
BoldAsFont=yes
AllowBlinking=yes
Scrollbar=none
ScrollbackLines=200
ClickTargetMod=off
ComposeKey=shift

ForegroundColour=119,80,103
BackgroundColour=249,241,233
CursorColour=0,184,174

Black=194,168,144
BoldBlack=194,168,144
Red=255,43,89
BoldRed=255,43,89
Green=0,127,192
BoldGreen=0,127,192
Yellow=151,185,1
BoldYellow=151,185,1
Blue=248,130,20
BoldBlue=248,130,20
Magenta=177,54,91
BoldMagenta=177,54,91
Cyan=20,77,121
BoldCyan=20,77,121
White=0,184,174
BoldWhite=0,184,174
ClipShortcuts=no
FontWeight=700
FontIsBold=yes
Language=zh_CN
Printer=Generic 36C-9SeriesPCL
ZoomShortcuts=no
AltFnShortcuts=no
BellType=0
OpaqueWhenFocused=no
git-prompt.sh 状态提示脚本.

替换安装目录下的 /etc/profile 同名脚本即可

if test -f /etc/profile.d/git-sdk.sh
then
TITLEPREFIX=SDK-${MSYSTEM#MINGW}
else
TITLEPREFIX=$MSYSTEM
fi

if test -f ~/.config/git/git-prompt.sh
then
. ~/.config/git/git-prompt.sh
else
PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]' # set window title
PS1="$PS1"'\n' # new line
PS1="$PS1"'\[\033[1;32m\]' # change to green
# PS1="$PS1"'\u@\h ' # user@host<space>
PS1="$PS1"'\u ' # user@host<space>
PS1="$PS1"'\[\033[1;31m\]' #
PS1="$PS1"'{@v@/~} '
PS1="$PS1"'\[\033[1;35m\]' # change to purple
# PS1="$PS1"'$MSYSTEM ' # show MSYSTEM
PS1="$PS1"'"\t" ' # show TIME
PS1="$PS1"'\[\033[1;33m\]' # change to brownish yellow
PS1="$PS1"'\W' # current working directory
if test -z "$WINELOADERNOEXEC"
then
GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
if test -f "$COMPLETION_PATH/git-prompt.sh"
then
. "$COMPLETION_PATH/git-completion.bash"
. "$COMPLETION_PATH/git-prompt.sh"
PS1="$PS1"'\[\033[36m\]' # change color to cyan
PS1="$PS1"'`__git_ps1`' # bash function
fi
fi
PS1="$PS1"'\[\033[37m\]' # change color
# PS1="$PS1"'\n' # new line
PS1="$PS1"' >>> ' # prompt: always $
fi

MSYS2_PS1="$PS1" # for detection by MSYS2 SDK's bash.basrc

完成上述两步后,重启即可,效果如下,可根据自己口味进行调节

使用 SSH 连接到 GitHub

生成新 SSH 密钥

ssh-keygen -t rsa -C user@example.com

其中 user@example.com 对应 Git 的邮箱地址

ssh-agent 是一种控制用来保存公钥身份验证所使用的私钥的程序,其实 ssh-agent 就是一个密钥管理器,运行 ssh-agent 以后,使用 ssh-add 将私钥交给 ssh-agent 保管,其他程序需要身份验证的时候可以将验证申请交给 ssh-agent 来完成整个认证过程。

eval "$(ssh-agent -s)"

添加生成的 SSH key 到 ssh-agent:

ssh-add ~/.ssh/id_rsa

要配置 GitHub 帐户使用新的(或现有)SSH 密钥,您还需要将其添加到 GitHub 帐户。
这个网上有大量的教程这里就不赘述了,后续也会讲到多 git 账户管理。