Windows 上的 Git 安装与配置指南
本指南旨在提供在 Windows 操作系统上安装和配置 Git 的详细步骤,部分内容可能会因操作系统版本和 Git 版本的不同而有所差异,请根据实际情况进行调整。
本指南假定读者对命令行和 Unix Utils 有基本了解。
创建 GitHub 账号
如果你已经有 GitHub 账号,可以跳过此步骤。
本指南假定你可以正常访问 GitHub 和相关服务。如果在中国大陆地区访问 GitHub 速度较慢,可以考虑使用网络加速工具,如 Watt Toolkit 提供的 GitHub 的加速服务。请注意,这不是 Git 安装的必要步骤,仅为改善下载和访问体验的建议。本指南不对任何第三方工具的使用负责。
访问 GitHub,点击右上角的“Sign up”(注册)按钮。按照提示填写用户名、邮箱和密码,完成注册流程。
安装 Git for Windows
访问 Git 下载页面,点击“Install for Windows”(为 Windows 安装)按钮,在新页面中根据提示下载最新版本的 Git 安装程序。
截至本指南撰写时,最新版本 2.52.0 可在 此处 下载。
运行下载的安装程序,按照提示完成安装,这可能会要求管理员权限。
以下步骤基于 Git 2.52.0 版本,其他版本可能略有不同。
Information(信息)
Git 基于 GNU 通用公共许可证第二版 发布。确保你同意该许可证条款后,点击“Next”(下一步)。
Select Destination Location(选择安装位置)
选择 Git 的安装位置,点击“Next”。
Select Components(选择组件)
| 组件名称/选项 | 功能与作用说明 |
|---|---|
| Additional icons | - |
| - On the Desktop | 在 Windows 桌面上创建 Git Bash 的快捷方式图标。 |
| Windows Explorer integration | - |
| - Open Git Bash here | 在任意文件夹的右键菜单中添加“Open Git Bash Here”选项,可直接在该路径打开 Git Bash。 |
| - Open Git GUI here | 在任意文件夹的右键菜单中添加“Open Git GUI Here”选项,可启动图形化 Git 工具。 |
| Git LFS (Large File Support) | 安装 Git 大文件支持扩展,用于高效管理大型文件。 |
| Associate .git* configuration files with the default text editor | 将 .gitconfig、.gitignore 等 Git 配置文件与系统默认文本编辑器关联。 |
| Associate .sh files to be run with Bash | 将 .sh 后缀的 Shell 脚本文件默认与 Git Bash 关联。 |
| Check daily for Git for Windows updates | 让 Git for Windows 每天自动检查一次更新。 |
| Add a Git Bash Profile to Windows Terminal | 为系统自带的 Windows Terminal 应用添加“Git Bash”配置文件。 |
| Scalar (Git add-on to manage large-scale repositories) | 安装微软开发的 Scalar 工具,用于优化和高效管理超大型 Git 仓库性能的附加组件。 |
建议保持默认选项,点击“Next”。
Select Start Menu Folder(选择开始菜单文件夹)
选择开始菜单文件夹,点击“Next”。
Choosing the default editor used by Git(选择 Git 默认文本编辑器)
选择你喜欢的文本编辑器作为 Git 的默认编辑器,点击“Next”。
对于初学者,不建议选择 Vim,因为它的使用门槛较高。可以选择 Nano(TUI 编辑器)、Visual Studio Code(如果已安装)或其他熟悉的编辑器。
Adjusting the name of the initial branch in new repositories(调整新仓库的初始分支名称)
在 Git 中,分支(Branch)是指向一系列提交(Commit)的可移动指针,代表了软件开发中的一条独立开发线。你可以创建一个新分支来尝试新功能或修复错误,而不会影响主开发线的稳定性。所有提交都隶属于某个分支,通过切换分支,你可以让工作目录中的文件快速切换到该分支所指向的代码版本。
在此步骤中,你可以选择新仓库的默认分支名称。传统上,Git 使用“master”作为默认分支名称,但近年来,许多项目和组织已经转向使用“main”作为更具包容性的默认分支名称。
- Let Git decide(让 Git 决定)
- 选择此选项,Git 将使用其默认设置,通常是“master”或“main”,具体取决于 Git 版本和配置。
- Override the default branch name(覆盖默认分支名)
- 选择此选项,可以手动指定新仓库的默认分支名称,例如“main”或其他名称。
这仅对设置完成后新创建的仓库生效。
Adjusting your PATH environment(调整 PATH 环境变量)
配置 PATH 环境变量,以决定系统在何处识别 Git 可执行文件,从而影响调用 Git 命令的方式与范围。
- Use Git from Git Bash only(仅从 Git Bash 使用 Git)
- 选择此选项,Git 命令只能在 Git Bash 中使用,而在其他命令行环境(如 Windows 命令提示符或 PowerShell)中不可用。
- Git from the command line and also from 3rd-party software(从命令行和第三方软件使用 Git)
- 选择此选项,Git 命令将在所有命令行环境中可用,包括 Windows 命令提示符和 PowerShell,以及其他依赖 Git 的第三方软件。
- Use Git and optional Unix tools from the Command Prompt(从命令提示符使用 Git 和可选的 Unix 工具)
- 选择此选项,除了 Git 命令外,还可以在 Windows 命令提示符中使用一些 Unix 工具(如
ls、grep等)。这可能会导致与某些 Windows 工具的冲突。
- 选择此选项,除了 Git 命令外,还可以在 Windows 命令提示符中使用一些 Unix 工具(如
建议选择“Git from the command line and also from 3rd-party software”,点击“Next”。
Choosing the SSH executable(选择 SSH 可执行文件)
SSH(Secure Shell)是一种用于安全远程登录和其他网络服务的协议。在使用 Git 时,SSH 通常用于通过加密连接与远程代码仓库(如 GitHub、GitLab 等)进行通信,确保数据传输的安全性和完整性。
OpenSSH 是一种广泛使用的 SSH 协议实现,提供了各种工具和库,用于实现安全的网络通信。
- Use bundled OpenSSH(使用捆绑的 OpenSSH)
- 选择此选项,Git 将使用随 Git 一起安装的 OpenSSH 客户端。这是一个开源的 SSH 实现,通常适用于大多数用户。
- Use external OpenSSH(使用外部 OpenSSH)
- 选择此选项,Git 将使用系统上已安装的外部 OpenSSH 客户端。如果你已经安装并配置了其他版本的 OpenSSH,可以选择此选项。
建议选择“Use bundled OpenSSH”,点击“Next”。
Choosing HTTPS transport backend(选择 HTTPS 传输后端)
- Use the OpenSSL library(使用 OpenSSL 库)
- 选择此选项,Git 将使用 OpenSSL 库来处理 HTTPS 连接。OpenSSL 是一个广泛使用的开源加密库,提供了强大的安全功能。
- Use the native Windows Secure Channel library(使用本地 Windows 安全通道库)
- 选择此选项,Git 将使用 Windows 操作系统内置的安全通道(Schannel)库来处理 HTTPS 连接。这可以更好地与 Windows 的安全机制集成。
建议选择“Use the native Windows Secure Channel library”,点击“Next”。
Configuring the line ending conversions(配置行结束符转换)
不同操作系统使用不同的行结束符来表示文本文件中的新行:
- Windows 使用回车换行符(CRLF,
\r\n)。 - Unix/Linux 和 macOS 使用换行符(LF,
\n)。
在跨平台开发中,行结束符的不一致可能导致代码在不同操作系统上出现问题。Git 提供了行结束符转换功能,以帮助解决这一问题。
- Checkout Windows-style, commit Unix-style line endings(检出 Windows 风格,提交 Unix 风格行结束符)
- 选择此选项,Git 在检出文件时将行结束符转换为 Windows 风格(CRLF),而在提交文件时将其转换为 Unix 风格(LF)。这有助于确保在 Windows 上工作的开发者能够正确查看和编辑文件,同时保持代码库中的行结束符一致性。
- Checkout as-is, commit Unix-style line endings(按原样检出,提交 Unix 风格行结束符)
- 选择此选项,Git 在检出文件时不进行任何行结束符转换,保持文件的原始行结束符格式,但在提交文件时将其转换为 Unix 风格(LF)。这适用于希望保留文件原始格式的用户,同时确保代码库中的行结束符一致性。
- Checkout as-is, commit as-is(按原样检出,按原样提交)
- 选择此选项,Git 在检出和提交文件时都不进行任何行结束符转换,保持文件的原始行结束符格式。这适用于希望完全控制行结束符的用户,但可能导致跨平台兼容性问题。
建议选择“Checkout as-is, commit Unix-style line endings”,点击“Next”。
Configuring the terminal emulator to use with Git Bash(配置与 Git Bash 一起使用的终端模拟器)
终端模拟器是一类软件应用程序,允许用户通过命令行界面与操作系统进行交互。Git Bash 是 Git for Windows 提供的一个终端模拟器,基于 MinTTY,提供了类 Unix 的命令行环境。
- Use MinTTY (the default terminal of MSYS2)(使用 MinTTY)
- 选择此选项,Git Bash 将使用 MinTTY 作为终端模拟器。在 MinTTY 中运行 Windows 控制台程序时,需要在命令前加上
winpty,例如winpty python。
- 选择此选项,Git Bash 将使用 MinTTY 作为终端模拟器。在 MinTTY 中运行 Windows 控制台程序时,需要在命令前加上
- Use Windows’ default console window(使用 Windows 默认控制台窗口)
- 选择此选项,Git Bash 将使用 Windows 自带的命令提示符窗口作为终端模拟器。这种方式与其他 Windows 命令行工具(如 PowerShell)更为一致。
建议选择“Use MinTTY (the default terminal of MSYS2)”,点击“Next”。
Choose the default behavior of git pull(选择 git pull 的默认行为)
配置在本地分支与远程分支发生分歧时,git pull 命令的默认行为。
- Fast-forward or merge
- 选择此选项,如果本地分支可以通过快进合并与远程分支同步,则执行快进合并;否则,执行普通合并。
- Rebase
- 选择此选项,使用变基方式整合远程分支的更改,保持提交历史的线性。
- Only fast-forward
- 选择此选项,仅在本地分支可以通过快进合并与远程分支同步时执行,否则操作失败。
建议选择“Fast-forward or merge”,点击“Next”。
Choose a credential helper(选择凭据助手)
凭据助手用于安全地存储和管理 Git 的认证信息(如用户名和密码),以便在与远程仓库交互时自动提供这些信息,避免每次操作都需要手动输入。
- Git Credential Manager
- 选择此选项,使用 Git Credential Manager 作为凭据助手。它支持多种身份验证方法,包括 OAuth 和个人访问令牌,适用于与 GitHub、Azure DevOps 等服务集成。
- None
- 选择此选项,不使用任何凭据助手。每次与远程仓库交互时,Git 都会提示输入认证信息。
建议选择“Git Credential Manager”,点击“Next”。
Configuring extra options(配置额外选项)
| 组件名称/选项 | 功能与作用说明 |
|---|---|
| Enable file system caching | 启用文件系统缓存以提高性能。 |
| Enable symbolic links | 启用对符号链接的支持。 |
建议保持默认选项,点击“Install”(安装)。
Completing the Git Setup Wizard(完成 Git 安装向导)
已完成所有配置,点击“Finish”(完成)退出安装向导。你也可以选择勾选“Launch Git Bash”选项,立即打开 Git Bash 终端。
验证安装
打开命令行终端(如 Git Bash、Windows 命令提示符或 PowerShell),输入以下命令以验证 Git 是否安装成功:
1 | |
如果显示 Git 的版本号,说明安装成功。例如:
1 | |
基本配置
在开始使用 Git 之前,建议进行一些基本配置,如设置用户名和邮箱地址。这些信息将用于标识你的提交记录。
在命令行终端中,输入以下命令进行配置:
1 | |
将 <your_name> 替换为你的 GitHub 用户名,<your_email@example.com> 替换为你注册 GitHub 时使用的邮箱地址。
连接至 GitHub
为了让本地 Git 能够与 GitHub 进行交互,你需要配置 SSH 密钥或使用 HTTPS 进行身份验证。
生成 SSH 密钥对
1
ssh-keygen -t ed25519 -C "<your_email@example.com>"按提示操作,通常可以直接按回车键接受默认设置。记录下生成的密钥文件路径,通常在
%USERPROFILE%\.ssh\id_ed25519和%USERPROFILE%\.ssh\id_ed25519.pub。%USERPROFILE%是 Windows 系统中的环境变量,表示当前用户的主目录路径,例如C:\Users\your_username。将公钥添加到 GitHub
登录 GitHub,点击 Avatar(头像)> “Settings”(设置)> “SSH and GPG keys”(SSH 和 GPG 密钥),点击“New SSH key”(新建 SSH 密钥),为密钥命名(如“My Laptop”),保持“Key Type”默认,将公钥(
id_ed25519.pub文件内容)粘贴到“Key”字段,点击“Add SSH key”(添加 SSH 密钥)。测试连接
1
ssh -T git@github.com如果看到类似以下的欢迎信息,说明配置成功:
1
Hi your_username! You've successfully authenticated, but GitHub does not provide shell access.
也可以选择使用 HTTPS 方式连接 GitHub,但每次操作可能需要输入用户名和密码,建议使用 SSH 方式以简化操作流程。
仓库管理
以下内容提供在本地和 GitHub 远程仓库之间进行基本操作的示例。
创建 GitHub 远程仓库
登录 GitHub,点击左上角“New”按钮,填写仓库名称、描述(可选)、选择公开或私有,点击“Create repository”(创建仓库)。注意不要勾选“Add README”(添加 README 文件)、“Add .gitignore”(添加 .gitignore 文件)或“Add a license”(添加许可证),以避免与本地仓库冲突。
在本地创建 Git 仓库并连接到远程仓库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26# 创建并进入项目目录
mkdir <project_name>
cd <project_name>
# 初始化 Git 仓库
git init
# 创建 README.md 文件
echo "# My Project" >> README.md
# 添加文件到暂存区
git add README.md
# 或者添加所有更改
# git add .
# 提交更改
git commit -m "Initial commit"
# 连接到远程仓库
git remote add origin git@github.com:<your_username>/<repository_name>.git
# 推送到远程仓库
git push -u origin main
# 如果默认分支是 master,则使用
# git push -u origin master
将 <project_name> 替换为你的项目名称,<your_username> 替换为你的 GitHub 用户名,<repository_name> 替换为你创建的远程仓库名称。
克隆远程仓库到本地
1
git clone <repository_url>
将 <repository_url> 替换为远程仓库的 URL,例如 https://github.com/<your_username>/<repository_name>.git。
常用 Git 命令
查看仓库状态
1
git status查看提交历史
1
git log拉取远程更改
1
2
3
4git pull origin main
# 如果默认分支是 master,则使用
# git pull origin master推送本地更改到远程仓库
1
2
3
4git push origin main
# 如果默认分支是 master,则使用
# git push origin master
参考资料
附录:使用 VS Code 进行 Git 管理
Visual Studio Code(VS Code)是一款流行的、基于开源项目 VS Codium 的代码编辑器,内置对 Git 的支持,提供了图形化的 Git 管理界面。在安装并配置好 Git 之后,可以使用 VS Code 来简化 Git 操作。
访问 VS Code 下载页面,选择适合你操作系统的版本进行下载和安装。
安装完成后,打开 VS Code,在左侧活动栏中点击 Extensions(扩展)图标,或按下 Ctrl+Shift+X,搜索并安装 Chinese (Simplified) 扩展以获得中文界面支持。
打开一个包含 Git 仓库(含有 .git 隐藏目录)的文件夹,VSCode 会自动检测到该文件夹是一个 Git 仓库,并在左侧活动栏中显示 Source Control(源代码管理)图标。点击该图标,可以查看当前仓库的状态、未提交的更改等信息。
打开未初始化的文件夹时,可以点击 Source Control 图标上的 Initialize Repository(初始化仓库)按钮,VSCode 会自动运行 git init 命令,创建一个新的 Git 仓库。如果你的 VS Code 登录了 GitHub 账号,还可以直接点击 Publish to GitHub(发布到 GitHub)按钮,将本地仓库推送到 GitHub 上的新远程仓库。
更多关于使用 VS Code 进行 Git 管理的详细信息,请参考 Source Control in VS Code。