Git
是目前最流行的分布式版本控制系统之一,广泛应用于软件开发和项目管理中。对于 Windows
用户来说,正确安装和配置 Git
是开始使用 Git
的第一步。本文提供一份详细的指南,帮助你在 Windows
系统上顺利安装 Git
,并解释每个安装步骤中的关键选项,确保你能够根据自己的需求进行最佳配置。无论你是初次接触 Git
的新手,还是希望优化现有安装的老手,本文都将为你提供有价值的指导。
一、下载地址
Git - Downloads
二、安装 git
1. 运行应用程序
2. 安装声明
3. 安装路径
4. 选择组件
4.1 Additional Icons
- 描述:此选项允许你在桌面上添加
Git Bash
和Git GUI
的快捷方式。 - 建议:推荐勾选,方便快速访问
Git
工具。 - 选项:
On the Desktop
:在桌面上创建快捷方式。
4.2 Windows Explorer integration
- 描述:此选项允许你在
Windows
资源管理器的右键菜单中添加Git Bash
和Git GUI
选项,方便在任意文件夹中快速打开Git
工具。 - 建议:根据个人习惯选择,推荐勾选。
- 选项:
Git Bash Here
:右键菜单中添加Git Bash
选项。Git GUI Here
:右键菜单中添加Git GUI
选项。
4.3 Git LFS (Large File Support)
- 描述:
Git LFS
是一个Git
扩展,用于管理大型文件(如图像、视频等),避免这些文件占用过多的存储空间。 - 建议:推荐勾选,特别是如果你需要处理大文件项目。
4.4 Associate .git* configuration files with the default text editor
- 描述:此选项允许你将
.git
配置文件与默认文本编辑器关联,方便直接编辑这些文件。 - 建议:推荐勾选,便于管理和修改
Git
配置。
4.5 Associate .sh files to be run with Bash
- 描述:此选项允许你将
.sh
文件与Bash
关联,使你可以直接双击运行这些脚本文件。 - 建议:推荐勾选,方便执行
Shell
脚本。
4.6 Check daily for Git for Windows updates
- 描述:此选项会每天自动检查
Git for Windows
的更新。 - 建议:不推荐勾选,除非你需要始终保持最新版本。
4.7 Add a Git Bash Profile to Windows Terminal
- 描述:此选项会将
Git Bash
配置文件添加到Windows Terminal
中,方便从终端快速启动Git Bash
。 - 建议:推荐勾选,提升开发效率。
4.8 Scalar (Git add-on to manage large-scale repositories)
- 描述:
Scalar
是Git
的一个扩展,专门用于管理大规模仓库,适用于处理非常大的代码库。 - 建议:视情况而定,如果你有大规模仓库的需求,可以考虑勾选。
5. 开始菜单文件夹
6. Git 默认编辑器
Git
安装程序里面内置了10种编辑器供你挑选,比如 Atom、Notepad、Notepad++、Sublime Text、Visual Studio Code、Vim
等等,默认的是 Vim
。
如果选择其他编辑器,例如 vscode
,则点击蓝色链接先安装 vscode
7. 初始化新项目(仓库)的主分支名称
Let Git decide
: 让Git
自己选择,名字是master
,但是未来也有可能会改为其他名字。Override the default branch name for new repositories
:自定义名字,默认是main
。
8. Path 环境变量(默认即可)
8.1 Use Git from Git Bash only
- 仅从
Git Bash
使用Git
。 - 这是最谨慎的选择,因为您的
PATH
根本不会被修改。您将只能使用Git Bash
中的Git
命令行工具。
8.2 Git from the command line and also from 3rd-party software
- 从命令行以及第三方软件进行
Git
。 - (推荐)此选项仅将一些最小的
Git
包装器添加到PATH
中,以避免使用可选的Unix
工具使环境混乱。您将能够使用Git Bash
中的Git
,命令提示符和Windov PowerShell
以及在PATH
中寻找Git
的任何第三方软件。
8.3 Use Git and optional Unix tools from the Command Prompt
- 使用命令提示符中的
Git
和可选的Unix
工具 Git
和可选的Unix
工具都将添加到您的PATH
中。警告:这将覆盖Windows
工具,例如 "find" and "sort"
. 仅在了解其含义后使用此选项。
9. 选择 SSH 执行文件(默认即可)
9.1 use bundled opensSH
- 使用捆绑开放
SH
- 它使用
Git
附带的ssh.exe
。
9.2 Use external opensSH
- 使用外部操作系统
SH
- 新的!这将使用外部的
ssh.exe.Git
不会安装它自己的OpenSSH
(和相关的)二进制文件,而是像在路径上找到的那样使用它们。
10. 选择 HTTPS 后端传输
如果只是用Git
来访问Github、Gitlab
等网站,使用默认即可。
10.1 use the OpenSSL library
- 使用
OpenSSL
库 - 服务器证书将使用
ca-bundle.crt
文件进行验证。
10.2 Use the native Windows Secure Channel library
- 使用本机
Windows
安全通道库 - 服务器证书将使用
Windows
证书存储进行验证。此选项还允许您使用公司内部分发的内部根CA
证书,例如通过Active Directory
域服务。
11. 配置行尾符号转换(默认即可)
11.1 Checkout Windows-style, commit Unix-style line endings
- 描述:
Git
会在检出文件时将行尾符号从Unix
样式(LF)
转换为Windows
样式(CRLF)
,而在提交文件时将行尾符号从Windows
样式(CRLF)
转换回Unix
样式(LF)
。 - 简述:签出
Windows
样式,提交Unix
样式的行结尾。 - 建议:推荐用于跨平台项目,特别是当项目主要在
Windows
系统上开发时。这样可以确保在Windows
系统上查看文件时没有多余的换行符,而在Unix
系统上提交时保持一致性。
11.2 Checkout as-is, commit Unix-style line endings
- 描述:
Git
在检出文件时不会进行任何行尾符号转换,但在提交文件时会将行尾符号从Windows
样式(CRLF)
转换为Unix
样式(LF)
。 - 简述:按原样签出,提交
Unix
样式的行结尾。 - 建议:推荐用于跨平台项目,特别是当项目主要在
Unix
系统上开发时。这样可以确保在Unix
系统上查看文件时没有多余的换行符,而在Windows
系统上提交时保持一致性。
11.3 Checkout as-is, commit as-is
- 描述:
Git
在检出和提交文件时都不会进行任何行尾符号转换。 - 简述:按原样签出,按原样提交。
- 建议:不推荐用于跨平台项目,因为这可能导致在不同操作系统上查看文件时出现不一致的行尾符号。选择此选项时,需要手动处理行尾符号的转换。
12. 配置终端模拟器(默认即可)
12.1 Use MinTTY (the default terminal of MSYS2)
- 描述:选择此选项后,
Git Bash
将使用MinTTY
作为终端模拟器。MinTTY
是MSYS2
的默认终端,具有可调整大小的窗口、非矩形选择和Unicode
字体支持。 - 优点:
- 可调整大小的窗口:可以方便地调整窗口大小以适应不同的需求。
- 非矩形选择:允许进行非矩形文本选择,方便复制和粘贴。
- Unicode 字体支持:能够正确显示非
ASCII
字符,适合处理多种语言的文本。
- 注意事项:
Windows
控制台程序(如交互式Python
)需要通过winpty
启动才能在MinTTY
中正常工作。
12.2 Use Windows’ default console window
- 描述:选择此选项后,
Git Bash
将使用Windows
的默认控制台窗口 (cmd.exe
) 作为终端模拟器。 - 优点:
- 兼容性:与
Windows
系统高度兼容,无需额外配置。
- 兼容性:与
- 缺点:
- 有限的默认滚动回显:默认滚动回显功能有限。
- 配置复杂:需要配置以使用
Unicode
字体来正确显示非ASCII
字符。 - 窗口限制:在
Windows 10
之前,窗口不可自由调整大小,且仅允许矩形文本选择。
13. 选择默认的 git pull 行为(默认即可)
13.1 Default (fast-forward or merge)
- 描述:这是
git pull
的标准行为。当可能时,将当前分支快速前进到获取的分支;否则,创建一个合并提交。 - 优点:
- 灵活性:在大多数情况下,快速前进是首选,但在有冲突时会自动创建合并提交。
- 兼容性:这是大多数
Git
用户习惯的行为。
13.2 Rebase
- 描述:将当前分支重新定位到获取的分支。如果没有任何本地提交需要重新定位,这相当于快速前进。
- 优点:
- 线性历史:创建一个线性的提交历史,使历史记录更清晰。
- 冲突处理:在有冲突时,需要手动解决冲突,但最终会有一个更简洁的历史记录。
- 缺点:
- 复杂性:对于不熟悉
rebase
的用户来说,可能会增加复杂性。 - 历史重写:可能会重写历史记录,不适合所有场景。
- 复杂性:对于不熟悉
13.3 Only ever fast-forward
- 描述:总是快速前进到获取的分支。如果快速前进不可行,则操作失败。
- 优点:
- 简单性:操作简单,避免了合并提交。
- 一致性:始终保持快速前进的行为。
- 缺点:
- 限制性:如果快速前进不可行(例如有冲突),则操作会失败,需要手动处理。
14. 选择凭证帮助程序(默认即可)
14.1 Git Credential Manager
- 使用跨平台的
Git
凭证管理器(Git Credential Manager
)。这个选项会自动保存和管理你的Git
凭证,使得在不同平台上使用Git
更加方便。
14.2 None
- 不使用任何凭证助手。这意味着你需要每次手动输入用户名和密码。
15. 配置额外选项(默认即可)
15.1 Enable file system caching
- 描述:启用文件系统缓存。文件系统数据将以批量方式读取并缓存在内存中(
core.fscache
设置为true
)。这可以显著提高性能。 - 优点:
- 性能提升:通过缓存文件系统数据,减少磁盘读取次数,从而提高 Git 操作的速度。
- 批量处理:批量读取文件系统数据,减少
I/O
操作。
15.2 Enable symbolic links
- 描述:启用符号链接(需要
SeCreateSymbolicLink
权限)。请注意,现有仓库不受此设置影响。 - 优点:
- 符号链接支持:允许
Git
使用符号链接,这对于某些工作流程和项目结构非常有用。 - 灵活性:符号链接可以提供更灵活的文件和目录管理。
- 符号链接支持:允许
16. 安装完成
三、测试
# 查看Git版本
git version
# 查看Git路径
where git