Git 中比较两个提交之间的差异

Abdul Jabbar 2023年1月30日
  1. git diff 命令
  2. git diff 提交之间
Git 中比较两个提交之间的差异

Git 是当今时代要求最高的版本控制系统。当我们需要将仓库中的某些数据与另一个仓库中可用的其他数据源进行比较时,我们有时会遇到这种情况,在这里我们将讨论如何比较这些仓库的其中一个示例。

本文将通过 Git 中的 git diff 命令比较两个不同的提交。

git diff 命令

命令 git diff 用于显示索引和/或工作树之间的更改、两种不同类型的树之间的更改、由于合并而发生的更改、两个 blob 对象之间发生的更改,或者可能是更改在同一磁盘上的两个不同文件之间。我们还可以看到文件中包含、删除和替换了哪些文本。

git diff 命令的语法如下所示。

git diff

上面的命令显示了对我们当前仓库的任何未提交的更改,这是默认选项。

git diff 提交之间

对于我们每天面临的每一种情况,Git 都有广泛的命令。为了检查两次提交之间的差异,Git 提供的命令是 git diff,它激活了 Git 中的 diffing 功能。

该功能是通过将两个变量作为输入,然后呈现它们之间的变化来执行的;变量是文件在其各自分支中的提交。

在这里,我们将比较两个 Git 提交之间的文件,并指定引用我们要比较的提交的 ref 名称。在这里,一个 ref 可以被认为是一个提交 ID 或一个 HEAD,直接引用最近的分支。

上面讨论的情况的语法如下。

git diff <commit1> <commit2>

我们将提供提交哈希以查看两个提交之间的差异。提交哈希可以是完整的 SHA-1 哈希、少量 SHA-1 哈希或祖先路径。

例如,我们正在比较 Git 仓库中的两个提交。为了恢复我们想要比较其文件的提交的 ID,我们将执行命令 git log –pretty=oneline;它将给出我们目前拥有的 repo 中所有提交的简明结果。

git log --pretty=oneline

此命令的结果将是:

5141eaasasw323asassa2408bfcaassasa2323240 (HEAD ->; master) feat: Update README.md
3405340easagsdsaasa3232232395f1c2e docs: Create README.md

假设我们要比较这两个提交。我们将执行以下命令。

git diff 5141ea9c41qwqwqwqw3232saas3322323223a910f2405240 3405340ee99df2aa6f5a23aswwqwqqwqwqw95f1c2e

正如我们所看到的,diffing 将通过上述命令在我们想要比较的两个提交中执行,结果将显示这两个文件的不同之处。

作者: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

相关文章 - Git Diff