- 文档/教程
【免费下载链接】90DaysOfDevOps
This repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.
本篇是 90DaysOfDevOps 挑战计划第 36 天(Day 36)的技术实战指南,源自 2022/pl/day36.md(英文原版见 2022/Days/day36.md),属于「Use Git Effectively」学习模块(见 2022/pl/README.md)的第二个里程碑。读完本篇,你将掌握:在 Windows 与 Ubuntu/Linux 上完成 Git 的安装、版本检查与升级;通过
git config三层作用域配置身份、编辑器等核心参数;并深入理解 Client-Server 与 Distributed 两类版本控制模型的本质差异,为后续 Day 37 的 Git 常用命令实战打好基础。
为什么需要重新安装与配置 Git?
Git 是一款开源的跨平台版本控制工具。与大多数 Linux 环境(尤其是 Ubuntu)一样,系统可能已经预装了 Git——本仓库作者在 WSL Ubuntu 与 Windows 机器上的初始检查都证实了这一点。但有两个原因促使我们主动执行安装与配置流程:
- 版本可能滞后:预装版本往往不是最新版,而版本差异会带来性能、安全修复与新特性(如更快的 diff 算法、更好的 SSH 支持)的差异;
- 首次使用必须配置身份:Git 的每次提交都会写入
user.name与user.email,未配置将无法正常提交。
因此,即使系统已装 Git,也应完成一次「检查版本 → 升级到最新 → 初始化配置」的完整流程。
安装 Git:Windows 与 Linux 双平台实操
Git 支持 Windows、Linux 与 macOS。本篇聚焦 Windows 与 Linux 两条路径。
Windows:官方安装器与 winget 两种方式
方式一:官方安装器
从 Git 官网下载最新版 Windows 安装程序,双击启动向导即可。整个安装过程非常简单,几个关键节点如下:
- GNU 许可证协议:通读后接受即可——请记住 Git 是免费开源软件;
- 附加组件选择:务必勾选Git Bash,它允许你在 Windows 上直接运行 bash 脚本,是 Windows 环境下使用 Git 命令行的最佳入口;
- SSH 可执行文件:保持默认的捆绑 OpenSSH(与 Linux 章节中见到的 OpenSSH 一致),无需额外处理;
- 实验性功能:按需启用,未启用也可在之后通过重新运行安装程序随时补上;
- 完成:安装结束后可立即启动 Git Bash,或查看最新版本发布说明。
需要特别注意的是:Git 安装器会先卸载旧版本再安装新版本,因此无论你是首次安装还是升级,向导流程基本一致。
方式二:winget(Windows 包管理器)
winget 是 Windows 官方应用包管理器。在 PowerShell 中执行以下命令即可安装/升级 Git:
winget install --id Git.Git -e --source wingetLinux(Ubuntu/WSL):apt 与官方 PPA 两种方式
在 Ubuntu 上安装 Git 最简单的方式是 apt:
sudo apt-get install git若你的发行版仓库中 Git 版本滞后(作者在写作时 Linux 端版本落后于 Windows 端),推荐通过官方 PPA(Personal Package Archive)获取持续更新的版本:
sudo add-apt-repository ppa:git-core/ppa -y sudo apt-get update sudo apt-get install git -y git --version这条命令链先添加 Git 官方软件源,再刷新软件包索引,随后安装 Git,最后用git --version验证结果。
安装前与安装后:用git --version验证
无论哪个平台,安装的第一步和最后一步都是检查版本。下图展示了 Windows PowerShell 中安装前的状态:
对应地,WSL Ubuntu 终端中的初始版本检查如下:
作者写作时,Windows 最新版为2.35.1,而本机安装的是2.31.1.windows.1,Linux 端则停留在2.25.1——两者都需要升级。走完安装向导后,再次在 PowerShell 执行git --version即可确认升级成功:
Linux 端完成sudo apt-get install git后同样验证为最新版:
至此,两个平台都已运行最新版 Git,可以进入配置阶段。
配置 Git:三个作用域与五项核心设置
首次使用必须定义的设置
在第一次使用 Git 前,需要定义以下设置:
- Name(用户名):提交时记录的作者名字;
- Email(邮箱):提交时记录的作者邮箱,通常与代码托管平台账号一致;
- Default Editor(默认编辑器):Git 需要你手动编辑提交信息等文本时调用的编辑器;
- Line Ending(换行符):跨平台协作时处理 CRLF/LF 差异的策略(Windows 与 Linux 的换行符不同,正确处理可避免大量无意义 diff)。
三个配置作用域
Git 配置存在三个层级,优先级从低到高:
| 作用域 | 生效范围 | 对应命令 |
|---|---|---|
| System | 该机器上的所有用户 | git config --system |
| Global | 当前用户的所有仓库 | git config --global |
| Local | 仅当前仓库 | git config --local(默认值) |
层级越低、范围越窄的配置会覆盖范围更大的配置——例如local中的user.email会覆盖global中的同名配置。
配置示例:身份与编辑器
git config --global user.name "Michael Cade" git config --global user.email "Michael.Cade@90DaysOfDevOps.com"以上两条命令将用户名与邮箱写入全局配置。默认编辑器因操作系统而异:在作者的 Ubuntu 机器上,未设置时默认使用nano。如需改用 Visual Studio Code 作为 Git 的默认编辑器,执行:
git config --global core.editor "code --wait"--wait参数使 VS Code 在文件关闭前保持 Git 命令阻塞等待,确保提交信息编辑完成后流程才继续。
查看与编辑配置
若要查看全部 Git 配置,可执行:
git config --global -e该命令会用默认编辑器打开全局配置文件。在任意机器上,这个文件都命名为.gitconfig,位于当前用户的主目录中(Windows 上即用户账户目录,例如C:\Users\<用户名>\.gitconfig;Linux 上即~/.gitconfig)。文件中以[user]、[core]等段落的 INI 风格存储全部配置,例如:
[user] name = Michael Cade email = Michael.Cade@90DaysOfDevOps.com [core] editor = code --wait除全局文件外,仓库级配置存放在仓库内的.git/config,系统级配置存放在 Git 安装目录下的系统级配置文件中,三者的读取顺序与优先级与前述作用域一致。
Git 理论:Client-Server 与 Distributed 两种模型
本篇不仅覆盖安装配置,还从理论层面解释 Git 的设计思想。版本控制系统可分为两大类:客户端-服务器(Client-Server)模型与分布式(Distributed)模型。
Client-Server 版本控制模型
在 Git 出现之前,Client-Server 是版本控制的事实标准,典型代表是 Apache Subversion——一个诞生于 2000 年的开源版本控制系统(对应原文理论章节,详见 2022/Days/day36.md)。
该模型的核心流程是:开发者先从服务器下载源代码与文件副本到本地,修改后提交/上传回服务器。它并没有消除冲突,只是降低了冲突的复杂性,让冲突的产生与解决更可控。
典型场景推演:两名开发者同时修改同一文件,先提交者成功将改动上传到服务器;后提交者在更新(update)时触发冲突——此时他必须先拉取第一名开发者的改动,在自己的工作副本中解决冲突,然后才能完成提交。
分布式版本控制模型
Git 并非唯一的分布式版本控制系统,但它如今已是事实标准。Git 的主要优势可概括为四个词:
- Fast(快):绝大多数操作在本地完成,无需网络往返;
- Smart(智能):基于内容寻址与 DAG(有向无环图)的对象模型,能高效处理分支与合并;
- Flexible(灵活):支持多种工作流(集中式、功能分支、GitFlow 等)与自定义钩子;
- Safe & Secure(安全可靠):每次提交内容均通过 SHA-1 哈希校验,历史不可篡改。
与 Client-Server 模型最大的不同在于:每个开发者下载的是整个仓库的完整副本——包括全部提交历史、所有分支等所有内容,而非单一文件快照。因此每个开发者的本地仓库都是一份可独立工作的完整镜像,服务器不再是协作的单一瓶颈。
这一点也可以从本仓库自身得到印证:90DaysOfDevOps仓库完整保留了 2022 至 2024 三年的全部挑战文档与资源,任何社区成员 clone 后都拥有完整历史,这正是分布式模型的协作能力所在(详见 2022/README.md 与仓库根目录的 README.md)。
与前后章节的衔接
本篇是 Git 学习序列的第二站:
- Day 35(2022/pl/day35.md)介绍了版本控制的概念与价值——跟踪项目历史、分支与合并、协作与单一事实来源,以及「版本控制不是备份」的重要提醒;
- Day 36(本篇)完成工具落地:安装、升级与配置;
- Day 37(2022/pl/day37.md)将进入常用命令实战(
git add --help、git add -h等),并破除「Git 没有访问控制」「Git 过于臃肿」等常见误解。
建议按顺序学习:先理解理论,再完成本环境搭建,最后投入命令实操。
核心命令速查表
| 目的 | 命令 |
|---|---|
| 检查 Git 版本 | git --version |
| Windows 安装 Git | winget install --id Git.Git -e --source winget |
| Ubuntu 安装 Git | sudo apt-get install git |
| Ubuntu 安装最新版(PPA) | sudo add-apt-repository ppa:git-core/ppa -y && sudo apt-get update && sudo apt-get install git -y |
| 设置用户名(全局) | git config --global user.name "Your Name" |
| 设置邮箱(全局) | git config --global user.email "you@example.com" |
| 设置默认编辑器 | git config --global core.editor "code --wait" |
| 查看全部全局配置 | git config --global -e |
小结
本篇文章完整复刻并深化了 Day 36 的内容:从双平台的安装、升级与版本验证,到三层作用域下的身份与编辑器配置,再到 Client-Server 与分布式两种版本控制模型的原理对比。至此,你的机器已运行最新版 Git 并完成基础配置,下一站(Day 37)即可开始真正「上手 Git」——掌握日常开发中最常用的命令与工作流。
90DaysOfDevOps 之 Git 安装与配置实战:从 Windows/Linux 环境搭建到分布式版本控制原理
本篇是 90DaysOfDevOps 挑战计划第 36 天(Day 36)的技术实战指南,源自 2022/pl/day36.md(英文原版见 2022/Days/day36.md),属于「Use Git Effectively」学习模块(见 2022/pl/README.md)的第二个里程碑。读完本篇,你将掌握:在 Windows 与 Ubuntu/Linux 上完成 Git 的安装、版本检查与升级;通过
git config三层作用域配置身份、编辑器等核心参数;并深入理解 Client-Server 与 Distributed 两类版本控制模型的本质差异,为后续 Day 37 的 Git 常用命令实战打好基础。
为什么需要重新安装与配置 Git?
Git 是一款开源的跨平台版本控制工具。与大多数 Linux 环境(尤其是 Ubuntu)一样,系统可能已经预装了 Git——本仓库作者在 WSL Ubuntu 与 Windows 机器上的初始检查都证实了这一点。但有两个原因促使我们主动执行安装与配置流程:
- 版本可能滞后:预装版本往往不是最新版,而版本差异会带来性能、安全修复与新特性(如更快的 diff 算法、更好的 SSH 支持)的差异;
- 首次使用必须配置身份:Git 的每次提交都会写入
user.name与user.email,未配置将无法正常提交。
因此,即使系统已装 Git,也应完成一次「检查版本 → 升级到最新 → 初始化配置」的完整流程。
安装 Git:Windows 与 Linux 双平台实操
Git 支持 Windows、Linux 与 macOS。本篇聚焦 Windows 与 Linux 两条路径。
Windows:官方安装器与 winget 两种方式
方式一:官方安装器
从 Git 官网下载最新版 Windows 安装程序,双击启动向导即可。整个安装过程非常简单,几个关键节点如下:
- GNU 许可证协议:通读后接受即可——请记住 Git 是免费开源软件;
- 附加组件选择:务必勾选Git Bash,它允许你在 Windows 上直接运行 bash 脚本,是 Windows 环境下使用 Git 命令行的最佳入口;
- SSH 可执行文件:保持默认的捆绑 OpenSSH(与 Linux 章节中见到的 OpenSSH 一致),无需额外处理;
- 实验性功能:按需启用,未启用也可在之后通过重新运行安装程序随时补上;
- 完成:安装结束后可立即启动 Git Bash,或查看最新版本发布说明。
需要特别注意的是:Git 安装器会先卸载旧版本再安装新版本,因此无论你是首次安装还是升级,向导流程基本一致。
方式二:winget(Windows 包管理器)
winget 是 Windows 官方应用包管理器。在 PowerShell 中执行以下命令即可安装/升级 Git:
winget install --id Git.Git -e --source wingetLinux(Ubuntu/WSL):apt 与官方 PPA 两种方式
在 Ubuntu 上安装 Git 最简单的方式是 apt:
sudo apt-get install git若你的发行版仓库中 Git 版本滞后(作者在写作时 Linux 端版本落后于 Windows 端),推荐通过官方 PPA(Personal Package Archive)获取持续更新的版本:
sudo add-apt-repository ppa:git-core/ppa -y sudo apt-get update sudo apt-get install git -y git --version这条命令链先添加 Git 官方软件源,再刷新软件包索引,随后安装 Git,最后用git --version验证结果。
安装前与安装后:用git --version验证
无论哪个平台,安装的第一步和最后一步都是检查版本。下图展示了 Windows PowerShell 中安装前的状态:
对应地,WSL Ubuntu 终端中的初始版本检查如下:
作者写作时,Windows 最新版为2.35.1,而本机安装的是2.31.1.windows.1,Linux 端则停留在2.25.1——两者都需要升级。走完安装向导后,再次在 PowerShell 执行git --version即可确认升级成功:
Linux 端完成sudo apt-get install git后同样验证为最新版:
至此,两个平台都已运行最新版 Git,可以进入配置阶段。
配置 Git:三个作用域与五项核心设置
首次使用必须定义的设置
在第一次使用 Git 前,需要定义以下设置:
- Name(用户名):提交时记录的作者名字;
- Email(邮箱):提交时记录的作者邮箱,通常与代码托管平台账号一致;
- Default Editor(默认编辑器):Git 需要你手动编辑提交信息等文本时调用的编辑器;
- Line Ending(换行符):跨平台协作时处理 CRLF/LF 差异的策略(Windows 与 Linux 的换行符不同,正确处理可避免大量无意义 diff)。
三个配置作用域
Git 配置存在三个层级,优先级从低到高:
| 作用域 | 生效范围 | 对应命令 |
|---|---|---|
| System | 该机器上的所有用户 | git config --system |
| Global | 当前用户的所有仓库 | git config --global |
| Local | 仅当前仓库 | git config --local(默认值) |
层级越低、范围越窄的配置会覆盖范围更大的配置——例如local中的user.email会覆盖global中的同名配置。
配置示例:身份与编辑器
git config --global user.name "Michael Cade" git config --global user.email "Michael.Cade@90DaysOfDevOps.com"以上两条命令将用户名与邮箱写入全局配置。默认编辑器因操作系统而异:在作者的 Ubuntu 机器上,未设置时默认使用nano。如需改用 Visual Studio Code 作为 Git 的默认编辑器,执行:
git config --global core.editor "code --wait"--wait参数使 VS Code 在文件关闭前保持 Git 命令阻塞等待,确保提交信息编辑完成后流程才继续。
查看与编辑配置
若要查看全部 Git 配置,可执行:
git config --global -e该命令会用默认编辑器打开全局配置文件。在任意机器上,这个文件都命名为.gitconfig,位于当前用户的主目录中(Windows 上即用户账户目录,例如C:\Users\<用户名>\.gitconfig;Linux 上即~/.gitconfig)。文件中以[user]、[core]等段落的 INI 风格存储全部配置,例如:
[user] name = Michael Cade email = Michael.Cade@90DaysOfDevOps.com [core] editor = code --wait除全局文件外,仓库级配置存放在仓库内的.git/config,系统级配置存放在 Git 安装目录下的系统级配置文件中,三者的读取顺序与优先级与前述作用域一致。
Git 理论:Client-Server 与 Distributed 两种模型
本篇不仅覆盖安装配置,还从理论层面解释 Git 的设计思想。版本控制系统可分为两大类:客户端-服务器(Client-Server)模型与分布式(Distributed)模型。
Client-Server 版本控制模型
在 Git 出现之前,Client-Server 是版本控制的事实标准,典型代表是 Apache Subversion——一个诞生于 2000 年的开源版本控制系统(对应原文理论章节,详见 2022/Days/day36.md)。
该模型的核心流程是:开发者先从服务器下载源代码与文件副本到本地,修改后提交/上传回服务器。它并没有消除冲突,只是降低了冲突的复杂性,让冲突的产生与解决更可控。
典型场景推演:两名开发者同时修改同一文件,先提交者成功将改动上传到服务器;后提交者在更新(update)时触发冲突——此时他必须先拉取第一名开发者的改动,在自己的工作副本中解决冲突,然后才能完成提交。
分布式版本控制模型
Git 并非唯一的分布式版本控制系统,但它如今已是事实标准。Git 的主要优势可概括为四个词:
- Fast(快):绝大多数操作在本地完成,无需网络往返;
- Smart(智能):基于内容寻址与 DAG(有向无环图)的对象模型,能高效处理分支与合并;
- Flexible(灵活):支持多种工作流(集中式、功能分支、GitFlow 等)与自定义钩子;
- Safe & Secure(安全可靠):每次提交内容均通过 SHA-1 哈希校验,历史不可篡改。
与 Client-Server 模型最大的不同在于:每个开发者下载的是整个仓库的完整副本——包括全部提交历史、所有分支等所有内容,而非单一文件快照。因此每个开发者的本地仓库都是一份可独立工作的完整镜像,服务器不再是协作的单一瓶颈。
这一点也可以从本仓库自身得到印证:90DaysOfDevOps仓库完整保留了 2022 至 2024 三年的全部挑战文档与资源,任何社区成员 clone 后都拥有完整历史,这正是分布式模型的协作能力所在(详见 2022/README.md 与仓库根目录的 README.md)。
与前后章节的衔接
本篇是 Git 学习序列的第二站:
- Day 35(2022/pl/day35.md)介绍了版本控制的概念与价值——跟踪项目历史、分支与合并、协作与单一事实来源,以及「版本控制不是备份」的重要提醒;
- Day 36(本篇)完成工具落地:安装、升级与配置;
- Day 37(2022/pl/day37.md)将进入常用命令实战(
git add --help、git add -h等),并破除「Git 没有访问控制」「Git 过于臃肿」等常见误解。
建议按顺序学习:先理解理论,再完成本环境搭建,最后投入命令实操。
核心命令速查表
| 目的 | 命令 |
|---|---|
| 检查 Git 版本 | git --version |
| Windows 安装 Git | winget install --id Git.Git -e --source winget |
| Ubuntu 安装 Git | sudo apt-get install git |
| Ubuntu 安装最新版(PPA) | sudo add-apt-repository ppa:git-core/ppa -y && sudo apt-get update && sudo apt-get install git -y |
| 设置用户名(全局) | git config --global user.name "Your Name" |
| 设置邮箱(全局) | git config --global user.email "you@example.com" |
| 设置默认编辑器 | git config --global core.editor "code --wait" |
| 查看全部全局配置 | git config --global -e |
小结
本篇文章完整复刻并深化了 Day 36 的内容:从双平台的安装、升级与版本验证,到三层作用域下的身份与编辑器配置,再到 Client-Server 与分布式两种版本控制模型的原理对比。至此,你的机器已运行最新版 Git 并完成基础配置,下一站(Day 37)即可开始真正「上手 Git」——掌握日常开发中最常用的命令与工作流。
- 文档/教程
【免费下载链接】90DaysOfDevOps
This repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.
相关推荐
90DaysOfDevOps 第 36 天:跨平台安装与配置 Git,从版本控制理论到实战上手
90DaysOfDevOps 第 36 天:跨平台安装与配置 Git,从版本控制理论到实战上手 本篇技术指南对应 90DaysOfDevOps 学习路线中 "U
文档/教程90DaysOfDevOps 第36天:Git 安装与配置实战——跨平台安装升级、git config 三级配置与版本控制理论
90DaysOfDevOps 第36天:Git 安装与配置实战——跨平台安装升级、git config 三级配置与版本控制理论 本篇文章承接 90DaysOfD
文档/教程90DaysOfDevOps 之 Day 36:Git 的安装与配置——跨平台安装、三级配置与版本控制模型精讲
90DaysOfDevOps 之 Day 36:Git 的安装与配置——跨平台安装、三级配置与版本控制模型精讲 本文是 90DaysOfDevOps 学习地图第
文档/教程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考