2.1 Git安装与初始配置


2.1 Git安装与初始配置

本节摘要:Git 的安装因操作系统而异,但"装完必须验证"这一步人人相同。本节覆盖 Windows、macOS、Linux 三平台的安装路径与常见坑,再讲清配置文件的三个级别(system/global/local)及其优先级,最后给出用户名、邮箱、默认编辑器、默认分支、别名、换行符六类初始配置的推荐值。

核心问题

阅读完本节,你应当能够:

  1. 在你的操作系统上安装 Git,并用命令验证安装成功。
  2. 说出 system、global、local 三个配置级别各自的作用域与优先级。
  3. 设置用户名和邮箱,并检查它们是否生效。
  4. 按需配置默认编辑器、默认分支名、别名与换行符处理。

一、问题与直觉

一个很反直觉的事实:大多数人第一次提交失败,不是不会提交,而是没装对 Git 或没配好身份。

装错的表现是"命令找不到"——你在终端敲 git,系统回一句"不是内部或外部命令"。这在 Windows 上最常见,本质是 Git 没进 PATH 环境变量。配错身份的表现更隐蔽——你提交成功了,但历史记录里作者的邮箱是空的或乱码,三个月后想找自己改的东西,搜作者名字搜不出来。

这两个坑都不难解,但容易在教程的"安装步骤"环节被一带而过。本节把它们讲透:安装部分给出三个平台的标准做法和验证命令,配置部分讲清"配置到底存在哪、谁覆盖谁",让你以后改配置时心里有数。

二、核心原理

安装:三条路径,一个共同终点

Git 是跨平台工具,三平台各有一条推荐路径:

Windows:从官网下载安装程序,双击运行。安装向导里有几个值得注意的选项——编辑器建议选你常用的(VS Code、Notepad++ 等);PATH 配置选"Git from the command line and also from 3rd-party software",这样 cmd 和 PowerShell 里都能用 git;换行符处理建议选"Checkout Windows-style, commit Unix-style line endings"。装完打开任意终端输入验证命令。

macOS:三种方式,按推荐度排序——装 Xcode Command Line Tools(最简单,系统会提示你安装);用 Homebrew 装最新版(brew install git);从官网下载安装包。前两种都能拿到能用的 Git,Homebrew 版本通常更新。

Linux:用发行版自带包管理器最省事。Debian/Ubuntu 系用 apt,Fedora/CentOS 系用 yumdnf,Arch 系用 pacman。包管理装完直接进 PATH,几乎不用额外配置。

无论哪条路,装完都做同一件事——验证:

git --version

看到 git version 2.x.x 之类的输出即成功。如果提示找不到命令,回查 PATH 配置,Windows 用户优先检查安装时是否选了"from the command line"。

配置文件的三级结构

Git 的身份和行为由配置文件驱动。配置文件分三级,作用域从大到小:

级别 位置 作用范围 使用场景
system /etc/gitconfig 或 C:\ProgramData\Git\config 系统所有用户所有仓库 管理员设默认
global ~/.gitconfig 或 ~/.config/git/config 当前用户所有仓库 个人通用设置
local 仓库内 .git/config 仅当前仓库 覆盖全局,按项目定制

优先级是本地 > 全局 > 系统:同一个配置项在多个级别都设了值,Git 用级别最高(即最具体)的那个。这条规则可以让你既保留个人邮箱,又在公司项目里覆盖成公司邮箱——在项目目录里设一次 local 即可,不影响其他项目。

图 2-1 三级配置的作用域分层

图 2-1 三级配置的作用域分层

生效方向永远是"后设置的高级别覆盖先设置的低级别",理解这条优先级链,你就知道改配置时该选哪个级别。

配置文件到底长什么样

好奇的话可以直接翻开配置文件看。全局配置通常在 ~/.gitconfig(Windows 上是用户目录下的 .gitconfig),内容类似:

[user] name = 张三 email = zhangsan@example.com [core] editor = code --wait [init] defaultBranch = main [alias] st = status co = checkout

这些 [节]键 = 值 的格式就是 Git 配置的底层语法。你可以用 git config 命令改,也可以直接编辑文件改——两种方式等价。知道文件长什么样有个实际好处:当你怀疑某个配置"怎么没生效"时,可以直接打开文件看它到底在不在、写没写错位置。比如把 [alias] 里的内容写到了 [user] 下面,命令查不到,文件却能一眼看出问题。

一个"配置不生效"的真实排查案例

有位同事反馈:他在全局配了 user.email,但在某个仓库里提交记录还是显示旧邮箱。排查步骤是这样的:

  1. 在仓库里跑 git config user.email,显示的是旧邮箱——说明 local 级别覆盖了 global。
  2. git config --local --list,果然仓库的 .git/config 里残留了一条旧邮箱配置。
  3. git config --local --unset user.email 删掉这条残留,提交记录恢复正常。

这个案例的价值在于演示了排查思路:先确认"生效值是什么",再查"是哪一级覆盖了它"--list 配合级别前缀(--system/--global/--local)逐个查,基本三分钟内定位问题。

三、工程实践要点

必做:用户名与邮箱

这两项决定提交记录里"作者"是谁,是所有配置里唯一必须做的:

git config --global user.name "你的名字" git config --global user.email "you@example.com"

用 --global 是因为绝大多数项目你要用同一个身份。检查是否生效:

git config --list # 列出所有生效配置 git config user.name # 查看单项

选做:四个提升体验的配置

默认编辑器:Git 需要编辑多行文本(写提交信息、rebase 操作)时会调用它。配成 VS Code 注意加 --wait,Git 要等你关掉编辑器才继续:

git config --global core.editor "code --wait"

默认分支名:从 Git 2.28 起,新仓库默认分支可以改成 main(社区更推荐,避免 master 与奴隶制语义关联):

git config --global init.defaultBranch main

别名:把高频长命令缩成短命令。st=status、co=checkout、br=branch、ci=commit 是最经典的一套。后面第 5 章会专门展开。

换行符:Windows 用 CRLF,Unix 系用 LF,跨平台协作时不统一会处处报 diff。Windows 建议 true(提交时转 LF、检出时转 CRLF),Unix/macOS 建议 input(提交时转 LF、检出不动)。追求精确控制的项目可以关掉它、改用 .gitattributes 按文件类型指定。

配置 Windows Unix/macOS
core.autocrlf true input
适用人群 大多数跨平台协作 纯 Unix 环境或团队有明确规范
代价 偶尔处理自动转换产生的意外 需自己管理行尾一致性

一个实用的初始化命令序列

新装好 Git 后,建议依次跑一遍:

git config --global user.name "你的名字" git config --global user.email "you@example.com" git config --global init.defaultBranch main git config --global core.autocrlf true # Windows;Unix 用 input git config --global alias.st status git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.lg "log --oneline --decorate --graph --all"

最后一条 lg 别名尤其值得:它让你用一个短命令看到带分支图的漂亮历史,后面 2.6 节会用上。

换行符问题为什么值得单独讲

换行符(line ending)可能是跨平台协作里最烦人的"小事":Windows 的文件用 CRLF(回车+换行)结尾,Unix/macOS 用 LF(换行)。如果你在 Windows 上提交了一个 LF 项目里的文件,Git 可能在你"什么都没改"的情况下报告整个文件都变了——因为每一行的行尾都被 Git 认为是改动。

core.autocrlf 就是治这个的:设 true 时,Git 提交前把 CRLF 转成 LF,检出时再转回 CRLF,仓库里永远是 LF,工作区永远是 Windows 习惯的 CRLF,两边都舒服;设 input 时,提交前仍转 LF,但检出不动,适合纯 Unix 环境。项目里更精细的做法是写一个 .gitattributes 文件,按文件类型指定(比如图片永不转换),这属于进阶话题,第 5 章可以顺带展开。

对新手,记住结论即可:Windows 设 true,Unix 设 input,先跑起来再说。等遇到具体的行尾问题(比如某文件在 GitHub 上显示"整文件变更"),再回头研究 .gitattributes 也不迟——多数团队的前三年,靠 autocrlf 就已经解决了九成烦恼。

⚠️ 常见坑:git config --list 里同一个配置出现多次,不是坏了,而是不同级别都设了值,靠前的(实际生效的)优先。看到重复别慌。

💡 关键直觉:配置是"分账本"不是"总账本"——system 是公司总账,global 是你个人账本,local 是某本特定书页上的批注。改配置前先问一句"这个项目想单独处理吗",答案决定你该写哪本账。

常见问题与 FAQ

"不配用户名邮箱,提交会失败吗?" 不会立即失败,但提交历史里作者字段会是 Git 猜的(通常来自系统用户名和机器名),且推送到远程时平台可能拒绝。一次配置,终身受益,别省这一步。

"为什么我在公司项目里改完邮箱,个人项目也跟着变了?" 因为全局配置对所有仓库生效。如果只是公司项目要用公司邮箱,在项目目录里用 local 级别单独设,不影响全局。

"命令行报错说 git 不是命令,怎么办?" 优先检查 PATH。Windows 用户重开终端(PATH 变更要在新终端生效)或检查安装选项;macOS/Linux 用户检查包是否真的装上。也可以用 which git 看 git 是否在可执行路径里。

"装完 Git 还需要装什么?" 命令行 Git 已足够完成本教程全部内容。IDE 的 Git 面板只是图形封装,底层还是这些命令。想更顺手的可以装个图形对比工具(如 Meld、KDiff3),3.4 节解决冲突时会提到。

安装完成后的三分钟自检

装完配完,别急着开始写代码,花三分钟把下面这套自检跑完,能避免后面一大半"莫名其妙"的问题:

# 1. 验证安装与版本 git --version # 2. 确认身份已配置 git config user.name git config user.email # 3. 确认默认分支为 main(可选但推荐) git config init.defaultBranch # 4. 建一个临时仓库测试全流程 mkdir -p /tmp/git-selfcheck && cd /tmp/git-selfcheck git init echo ok > test.txt git add test.txt git commit -m "selfcheck" git log --oneline

四步全部正常输出,说明你的 Git 环境是健全的,可以放心进入下一节。这套自检本质上也是第 2.3 到 2.5 节的迷你预演——装好工具的同时,你已经把核心流程走过一遍了。

值得留意的是第 4 步的 git log --oneline 输出——如果你看到 (HEAD -> main)(HEAD -> master) 的字样,说明分支指针已经在工作。这个"HEAD"会在第 3 章大放异彩,先混个脸熟。

关于 Windows 安装的几个老生常谈

Windows 用户最容易在安装向导里踩坑,集中提醒三处:

第一,PATH 选项别选错。三个选项中,"Use Git and optional Unix tools from the Command Prompt" 会把大量 Unix 工具塞进 PATH,可能和系统自带命令冲突(比如覆盖 find)。选中间的"Git from the command line and also from 3rd-party software"最稳妥。

第二,终端模拟器。安装向导会问用哪种终端,默认的 MinTTY 很好用,保持默认即可。如果你习惯在 PowerShell 或 Windows Terminal 里干活,这个选项不影响——它们都能调用 git。

第三,换行符选项想清楚再选。如果项目只在 Windows 内部协作,选"Checkout as-is, commit as-is"也可以;一旦要跟 Unix 系的人协作,就按前面表格的建议来。装完再改也行,改 core.autocrlf 配置即可,不用重装。

配置与安装的边界感

最后给一个长期有用的认知:安装是"一次性动作",配置是"持续演化的资产"。安装装完就结束了;配置则会随着你的习惯变化而不断生长——今天加了编辑器,明天加了别名,后天为某个项目设了特殊换行符规则。所以对待配置,要有"定期整理"的意识:

  • 换了新电脑,把旧机器的 ~/.gitconfig 拷过去,配置秒级迁移。
  • 把常用别名沉淀下来,甚至可以存到自己的配置仓库里,换环境一键同步。
  • 遇到"这台机器上正常、那台机器上报错"的问题,先怀疑配置差异,再怀疑代码。

这个习惯养成后,你在任何一台新电脑上都能十分钟内恢复自己顺手的 Git 环境。相比花半天重装重配,这是性价比极高的一笔投资。

本章回顾

  • 三平台安装:Windows 下载安装程序、macOS 用 Command Line Tools 或 Homebrew、Linux 用包管理器,装完一律 git --version 验证。
  • 三级配置:system 管全机、global 管当前用户、local 管当前仓库,优先级 local 最高。
  • 必配身份:user.name 与 user.email 用 --global 设置,提交记录才可信。
  • 体验配置:core.editor、init.defaultBranch、别名、core.autocrlf 四项按需设置。
  • 换行符:Windows 设 true、Unix/macOS 设 input,跨平台协作的常见矛盾源。
  • 常用别名:st/co/br/ci/lg 五连,从此少打一半字。

下一节进入三区模型——工作区、暂存区、本地仓库到底各存什么,为什么 Git 偏要拆出个"暂存区"来。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U