了解 Git 历史
Git 以与集中版本控制系统 (CVCS) (如 Team Foundation 版本控制、Perforce 或 Subversion)以基本不同的方式表示历史记录。 集中式系统存储存储库中每个文件的单独历史记录。 Git 将历史记录存储为整个存储库的快照图。 这些快照(称为 Git 中的 提交 )可以有多个父级,从而创建类似于图形而不是直线的历史记录。 历史记录中的这种差异非常重要,是熟悉 CVCS 的用户发现 Git 混淆的主要原因。
提交历史记录基础知识
从简单的历史记录示例开始:包含三个线性提交的存储库。

提交 A 是提交 B 的父级,提交 B 是提交 C 的父级。此历史记录看起来与 CVCS 非常相似。 指向提交 C 的箭头是分支。 分支是指向特定提交的指针,这就是为什么分支在 Git 中如此轻量级且易于执行。
与 CVCS 相比,Git 中的一个关键区别在于开发人员有自己的存储库的完整副本。 他们需要从远程存储库获取最新提交,使其本地存储库与远程存储库保持同步。 为此,请使用以下命令拉取主分支:
git pull origin main
这会合并远程存储库中主分支的所有更改,默认情况下会合并 Git 名称 origin 。 此拉取带来了一个新的提交,本地存储库中的主分支将移动到该提交。

了解分支历史记录
现在是时候更改代码了。 并行处理不同功能时,通常有多个活动分支。 这与 CVCS 形成鲜明对比,其中新分支繁重且很少创建。 第一步是使用以下命令签出到新分支:
git checkout -b cool-new-feature
这是组合两个命令的快捷方式:
git branch cool-new-feature创建分支git checkout cool-new-feature开始在分支中工作

现在,两个分支指向同一个提交。 假设分支中有 cool-new-feature 两个新提交(E 和 F)中的一些更改。

提交由 cool-new-feature 分支访问,因为它们已提交到该分支。
完成该功能后,需要将其合并到主分支中。 为此,请使用以下命令:
git merge cool-feature main

当存在合并时,历史记录的图形结构变得可见。 当分支合并到另一个分支时,Git 会创建一个新的提交。 这是合并提交。 由于没有冲突,因此未包含此合并提交的任何更改。 如果存在冲突,合并提交将包含解决这些更改所需的更改。
现实世界中的历史
下面是 Git 历史记录的示例,更类似于团队的活动开发中的代码。
有三个人在同一时间将提交从自己的分支合并到 main 分支中。

后续步骤
详细了解如何在 GitHub 中使用 Git 历史记录,并Azure Repos或 Git 日志历史记录简化。