详细介绍如何在各个操作系统中安装git。
安装
1 - Ubuntu安装
以下ubuntu版本都验证OK:
- 16.04
- 20.04
安装
为了拿到最新版本的 git,增加仓库然后再安装:
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
安装完成之后,验证版本:
git --version
git version 2.30.0
此时 git 是在 /usr/bin/ 目录下:
root@sky2:~# which git
/usr/bin/git
root@sky2:~# ls -l /usr/bin/git
-rwxr-xr-x 1 root root 1920512 Oct 4 03:50 /usr/bin/git
参考资料
2 - MacOS安装
手工安装
下载
在 git官网的下载页面找到mac版本
https://git-scm.com/download/mac
下载得到安装包,如 git-2.19.0-intel-universal-mavericks.dmg
安装
安装过程基本按照默认设置,一路next就好了。
修复
有些在升级macos的版本之后,再使用git时会报错如下:
$ git version
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
此时需要重新安装 xcode command line
:
$ xcode-select --install
参考资料:
brew安装
参考 https://git-scm.com/download/mac 页面的说明。
$ brew install git
……
The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.
Subversion interoperability (git-svn) is now in the `git-svn` formula.
zsh completions and functions have been installed to:
/opt/homebrew/share/zsh/site-functions
Emacs Lisp files have been installed to:
/opt/homebrew/share/emacs/site-lisp/git
==> **Summary**
🍺 /opt/homebrew/Cellar/git/2.35.1: 1,523 files, 43.5MB
==> **Running `brew cleanup git`...**
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
==> **Caveats**
==> **git**
The Tcl/Tk GUIs (e.g. gitk, git-gui) are now in the `git-gui` formula.
Subversion interoperability (git-svn) is now in the `git-svn` formula.
zsh completions and functions have been installed to:
/opt/homebrew/share/zsh/site-functions
Emacs Lisp files have been installed to:
/opt/homebrew/share/emacs/site-lisp/git
验证安装:
git --version
git version 2.32.0 (Apple Git-132)
3 - windows安装
下载
在 git官网的下载页面找到windows版本的下载页面:
https://git-scm.com/download/win
下载最新版本:
https://github.com/git-for-windows/git/releases/download/v2.45.2.windows.1/Git-2.45.2-64-bit.exe
下载得到安装包,如 Git-2.45.2-64-bit.exe。
安装
安装路径选择 C:\Users\sky\work\soft\git
安装过程基本按照默认设置,一路next就好了。
配置
修改启动后的默认路径
安装完成之后,桌面的 Git Bash 快捷方式打开之后,默认进入当前用户的home目录。
如果需要修改,比如我个人习惯直接进入代码存放路径如 C:\work\code
,则需要修改快捷方式的属性。
编辑快捷方式的属性:
目标中删除 --cd-to-home
, 然后将起始位置从默认的 %HOMEDRIVE%%HOMEPATH%
修改为 C:\work\code
。
修改控制台字体
Git Bash 控制台默认的字体如果不合适(通常字体偏小),可以修改。
-
点下图中红色箭头处,下拉菜单中选择"Options"
-
在 “Text” 中可以选择字体和大小
安装配置 zsh
备注:这些工作本应该是 windows 工作环境配置的一部分,但是由于没有合适的地方记录,而我通常会在第一时间把 git 配置好,因此就暂时保存在这里吧。
下载zsh
Zsh下载地址:
https://packages.msys2.org/package/zsh?repo=msys&variant=x86_64
下载 .tar.zst 文件:
https://mirror.msys2.org/msys/x86_64/zsh-5.9-2-x86_64.pkg.tar.zst
这个文件可以用 winrar 解压缩,得到 zsh-5.9-2-x86_64.pkg 目录,里面有两个子目录:etc 和 usr 。
安装zsh
复制 etc 和 usr 目录,粘贴到 git 的安装目录如 C:\Users\sky\work\soft\git
,git 安装目录下同样有 etc 和 usr 目录,文件会自动合并进去。
运行zsh
运行时,要先启动 git 自带的 bash 终端,然后执行 zsh 命令,也可以查看 zsh 版本:
$ zsh --version
zsh 5.9 (x86_64-pc-msys)
为了方便使用,尤其是用 zsh 替代 bash,可以修改 bash 的配置文件 ~/.bashrc (如果没有就创建它) ,加入内容:
/c/Windows/System32/chcp.com 65001 > /dev/null 2>&1
if [ -t 1 ]; then
exec zsh
fi
这样就可以自动 bash 时自动启动 zsh。
第一次执行时会询问文件创建的问题,选择
Quit and do nothing. The function will be run again next time.
安装 Oh my zsh!
在 zsh 终端执行:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
在这里下载并安装几个字体
https://github.com/romkatv/powerlevel10k#meslo-nerd-font-patched-for-powerlevel10k
下载安装 Powerlevel10k 主题:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
修改
vi ~/.zshrc
增加内容:
ZSH_THEME="powerlevel10k/powerlevel10k"
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(history)
POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
# User configuration
export LS_COLORS="rs=0:no=00:mi=00:mh=00:ln=01;36:or=01;31:di=01;34:ow=04;01;34:st=34:tw=04;34:pi=01;33:so=01;33:do=01;33:bd=01;33:cd=01;33:su=01;35:sg=01;35:ca=01;35:ex=01;32:"
配置以下插件:
git clone https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/Pilaton/OhMyZsh-full-autoupdate.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/ohmyzsh-full-autoupdate
修改 zsh 配置
vi ~/.zshrc
修改 plugins 为
plugins=(
command-not-found
extract
deno
docker
git
github
gitignore
history-substring-search
node
npm
nvm
yarn
volta
vscode
sudo
web-search
z
zsh-autosuggestions
zsh-syntax-highlighting
ohmyzsh-full-autoupdate
)
# User configuration
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor root line)
ZSH_HIGHLIGHT_PATTERNS=('rm -rf *' 'fg=white,bold,bg=red')
重启 zsh。
Updating plugins and themes Oh My ZSH
--------------------------------------
Updating Plugin — ohmyzsh-full-autoupdate -> https://github.com/Pilaton/OhMyZsh-full-autoupdate
Already up to date.
Updating Plugin — zsh-autosuggestions -> https://github.com/zsh-users/zsh-autosuggestions
Already up to date.
Updating Plugin — zsh-syntax-highlighting -> https://github.com/zsh-users/zsh-syntax-highlighting
Already up to date.
Updating Theme — powerlevel10k -> https://github.com/romkatv/powerlevel10k
Already up to date.
配置网络代理
修改 zsh 配置
vi ~/.zshrc
增加以下内容:
# proxy
alias proxyon='export all_proxy=socks5://192.168.2.1:7891;export http_proxy=http://192.168.2.1:7890;export https_proxy=http://192.168.2.1:7890;export no_proxy=127.0.0.1,localhost,local,.local,.lan,192.168.0.0/16,10.0.0.0/16'
alias proxyoff='unset all_proxy http_proxy https_proxy no_proxy'
4 - 初始化配置
查看 git 配置
安装之后,使用下面的命令查看 git 的配置:
$ git config --list
credential.helper=osxkeychain
user.name=Sky Ao
user.email=aoxiaojian@gmail.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=git@github.com:skyao/learning-git.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
remote.docsy.url=git://github.com/skyao/docsy-example.git
remote.docsy.fetch=+refs/heads/*:refs/remotes/docsy/*
配置全局的name和email
使用下面的命令设置全局的用户 name 和 email :
git config --global --edit
然后修改里面的内容,设置好 name 和 email:
# This is Git's per-user configuration file.
[user]
# Please adapt and uncomment the following lines:
name = Sky Ao
email = aoxiaojian@gmail.com
也可以通过下面两条命令来分别设置:
git config --global user.name "Sky Ao"
git config --global user.email "aoxiaojian@gmail.com"
上面两个方式都是修改全局配置文件,默认地址是 ~/.gitconfig
,可以直接通过 vi 等命令打开修改。
配置单个仓库的name和email
如果有某个仓库需要设置和默认全局用户不一样的 name 和 email,则可以通过如下命令:
git config user.name "aoxiaojian"
git config user.email "aoxiaojian@hotmail.com"
通过可以通过命令 git config --list
进行查看,配置内容同样存放在文件 ~/.gitconfig
中。
参考资料
5 - 配置ssh
为了方便日常使用,推荐采用ssh的方式来clone git仓库。
为此,需要创建 ssh key 并配置。
创建 ssh key
ssh-keygen -t rsa
一路回车确认,最后成功生成,创建的 ssh key 文件位于 ~/.ssh/id_rsa.pub
:
$ ls -l ~/.ssh
total 8
-rw------- 1 sky sky 1679 Oct 26 15:24 id_rsa
-rw-r--r-- 1 sky sky 396 Oct 26 15:24 id_rsa.pub
id_rsa.pub 是 ssh 的公钥,后面配置时要提交的公钥的内容就在这个文件中。
github 配置
登录之后,点红色箭头所指处,下拉菜单中点 “settings”, 然后点 “SSH and GPG keys” -> “New SSH key”,最后将 id_rsa.pub 文件的内容复制过来提交:
配置完成之后,尝试以ssh方式执行git clone 命令:
git clone git@github.com:skyao/learning-git.git
6 - 配置代理
linux 配置
vi ~/.ssh/config
打开文件(如果不存在则新建文件),内容如下:
# 这里必须是 github.com,因为这个跟我们 clone 代码时的链接有关
Host github.com
# 如果用默认端口,这里是 github.com,如果想用443端口,这里就是 ssh.github.com 详
# 见 https://help.github.com/articles/using-ssh-over-the-https-port/
HostName github.com
User git
# 如果是 HTTP 代理,把下面这行取消注释,并把 proxyport 改成自己的 http 代理的端>口
#ProxyCommand socat - PROXY:192.168.2.1:%h:%p,proxyport=7890
# 如果是 socks5 代理,则把下面这行取消注释,并把 6666 改成自己 socks5 代理的端口
ProxyCommand nc -v -x 192.168.2.1:7891 %h %p
windows 配置
在 windows 下的 gitbash 中,由于没有 nc 命令,因此上面的命令会失败。需要替换为 connect 命令:
Host github.com
HostName github.com
User git
#ProxyCommand socat - PROXY:192.168.2.1:%h:%p,proxyport=7890
ProxyCommand connect -S 192.168.2.1:7891 %h %p