Git SDK安装与配置
上一级页面:index-windows
前言
Git
作为代码管理程序,自带一个好用的shell工具--Git Bash
但在Windows中,git发行版自带的git bash
是阉割版,git sdk for windows
则包含一个完整版本的git bash
,并且提供了一套基本完整的集成开发环境
故此,在Windows环境下,推荐首先安装git sdk
,git sdk
包含了一个完整的git bash,本文将给出详细配置。
然后再通过git sdk来安装git,本文将给出安装过程
Git SDK 简介
Git SDK 全称 Git for Windows SDK,是基于 MSYS2(MinGW64 + Cygwin 合体增强)的仿 Linux 环境;
安装后大约会占用 4~5 GB 的磁盘空间,但是包含了完整的仿 Linux 环境:包括常用工具,完整的 GNU Complier 链以及包管理器 pacman;基本上是一套完整的集成开发环境,所以是 SDK
此外,虽然 Git SDK 是基于 MSYS2 的,是 Git 的超集……
但是你仍然需要安装 Git,本文将给出安装过程
建议安装 Git SDK 而不是 MSYS2,因为前者比后者好用
安装git发行版 git for windows
要安装git sdk,需要先安装git,你可以去 Git for Windows 官网,点击如图按钮下载
安装 Git SDK
你可以去 Git for Windows 官网,拉到最下面可以看到 Git SDK 的下载; 这样下载的是一个安装器,会自动从一个仓库克隆这个程序所需要的全部文件但是下载速度感人,
下载Git for Windows SDK:
Release Git for Windows SDK v1.0.8 · git-for-windows/build-extra
安装步骤如下:
将解压后的文件放在某个位置,将这个路径记为git-sdk安装目录
安装有点慢,先设置走代理
# https协议设置走 HTTP 隧道代理
git config --global http.proxy "http://127.0.0.1:1080"
# 下面这条会丧失安全性
git config --global https.proxy "http://127.0.0.1:1080"
具体其他的详情见git-连接远程服务器的代理方案
等待自动化安装过程:
如果安装过程中,报错安装失败,检查代理设置后,
手动打开C:\git-sdk-64
,显示系统隐藏文件,然后删除.git
文件夹,然后手动管理员身份运行C:\git-sdk-64
下的setup-git-sdk.bat
git bash with git sdk设置网络代理
进行网络代理配置,详情见 index-proxy
配置环境变量
将安装目录下的/cmd
文件夹加入系统变量
注意:\usr\bin
目录最好不要加到系统变量,避免与其他类似工具比如 Gow
产生冲突,所
另外一方面,要在cmd等shell中使用git,也需要配置这个环境变量
更新源和核心包
修改 pacman 软件包源为国内源
在 /etc/pacman.d/
目录下有三个文件:mirrorlist.msys
、mirrorlist.mingw64
和 mirrorlist.mingw32
;我们可以直接在 Windows 中使用文本编辑器修改它们为国内源:
##
## MSYS2 repository mirrorlist
##
## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
Server = http://repo.msys2.org/msys/$arch
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/
##
## 64-bit Mingw-w64 repository mirrorlist
##
## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
Server = http://repo.msys2.org/mingw/x86_64
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
Server = http://www2.futureware.at/~nickoe/msys2-mirror/x86_64/
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
##
## 32-bit Mingw-w64 repository mirrorlist
##
## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = http://repo.msys2.org/mingw/i686
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
Server = http://www2.futureware.at/~nickoe/msys2-mirror/i686/
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/
注意服务器的顺序,将国内服务器放在优先的位置才能保证 pacman 优先使用它;
更新git SDK
更新SDK需要关掉所有的GitBash窗口,以防有文件被锁住。 需要启动Windows的cmd来更新,然后进入C:\git-sdk-64\
。 然后在此cmd窗口中执行update-via-pacman.bat
。 不管有没有更新,每次总会重装git-extra
。
也可以直接在文件浏览器中双击运行update-via-pacman.bat
来完成更新。
还可以调用pacman -Syu
来更新。过程中可能需要关掉重开git-bash,也许需要多次执行pacman -Syu
。
更新核心软件包
核心的软件包msys2-runtime、 bash以及pacman还可以通过pacman -Syu
来一起更新,因为这些软件在编译的时候互相依赖。 要保证他们的互相依赖是正确的。
pacman -Syu
另一可选的办法是执行执行C:\git-sdk-64\git-cmd
来弹出一个cmd窗口,在其中执行pacman -Sy --needed msys2-runtime && pacman -S --needed pacman bash
。
执行C:\git-sdk-64\git-cmd
。
更新核心运行时,更新pacman,并更新bash
pacman -Sy --needed msys2-runtime
pacman -Sy --needed pacman
pacman -Sy --needed bash
建议将msys2-runtime、bash和pacman分开来,单独升级。总之有可能会遇到比较奇怪的问题。
遇到某些错误无法更新
如果遇到某些错误无法更新,那么总是可以选择下载一个新的SDK,重新安装之。过程中,你可以选择保留旧SDK中的usr/src
,将其同步到新的SDK中。
也可以查看
git update-git-for-windows -h
。
更新pacman源
运行git sdk
更新源信息,首次更新可能需要重启;
pacman -Syu
pacman -Sy
可以确保软件包最新。pacman -Syu
将所有软件包升级到最新。
使用pacman安装git
windows下通过git sdk来安装git
pacman -S git
git是最常用的代码管理系统,git的使用见git-安装-配置
卸载git 发行版
在Windows中,git发行版自带的git bash
是阉割版,git sdk for windows
则包含一个完整版本的git bash
,并且提供了一套基本完整的集成开发环境,还可以通过git sdk来安装git
此时可以卸载系统中原本的git 发行版,
如图所示,你点击图中按钮下载的就是git发行版,现在已经可以卸载这个发行版了
安装常用包
可以通过pacman -S <package-name>
安装软件包
安装git、wget
pacman -S wget
pacman -S git
pacman没有自带的perl。安装perl
pacman -S perl
为git bash添加 sudo 命令:gsudo-sudo
常用命令
Git for Windows基于MSYS2。MSYS2和MSYS1相比,引进了包管理器msys。
可以通过pacman -S <package-name>
安装软件包。-Sy
可以确保软件包最新。pacman -Syu
将所有软件包升级到最新。
删除软件包pacman -R <package-name>
列举软件包pacman -Q
;查询软件包内容pacman -Ql <package-name>
;查询文件所属的软件包pacman -Qo <file-name>
。
仓库
Git for windows有三个相关的pacman仓库
- https://github.com/git-for-windows/build-extra
- https://github.com/git-for-windows/MINGW-packages
- https://github.com/git-for-windows/MSYS2-packages
常见问题
参考、引用、致谢
在 Windows 10 中使用 zsh 作为默认终端 - 七海の参考書 (shiraha.cn)
在 Windows 10 中使用 zsh 作为默认终端 - 七海の参考書 (shiraha.cn)
Windows Terminal美化(oh-my-posh3) - 知乎 (zhihu.com)
Git for Windows的编译环境 | Marvin's Blog【程式人生】 (marvinsblog.net)