Git 差异
Git 是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型项目到大型项目的所有项目。 Git 依赖于软件的分布式开发,其中多个开发人员可以访问特定应用程序的源代码,并且可以修改其他开发人员可能看到的更改。
那么 git diff 实际上向您展示了在提交后文件中所做的所有更改,例如:- 一个文件说 at.txt 在提交后在这里被修改,在这里我们可以看到文件在提交后存在差异犯罪。
说明:两个 Commit 之间的变化如下图所示:
因此,现在如果您想查看两次提交之间的更改,请使用以下命令: git diff commit-id1 commit-id 2 here 我们可以在我们的第一个 Commit Hello Geeks for Geeks 中看到这一点?即将到来,在我们的第二次提交Hello Geeks for Geeks 中?来到这里。
显示暂存文件的差异
所以现在如果我们想查看之前提交和当前暂存文件之间的变化,我们可以使用以下命令:
git diff - 暂存。此外,还有一个命令是git diff –cached ,我们可以将其用于相同的用例。另外,我们可以使用
git status -v就像-staged one 命令的同义词。
使用 git diff 比较分支
为了查看不同分支之间的变化,我们将使用命令git diff name_of _the_branch1 name_of_the_branch2。现在,如果我们想查看branch_2上的所有更改,我们将使用命令git diff branch1_name branch2_name 。
在这里我们可以看到,当命令是git diff branch1_name brach2_name时,它也以绿色显示了 branch_name 2 上的所有更改,这意味着这些更改在该分支中暂存并提交,而第二个命令正好相反第一个命令git diff branch2_name branch1_name它以红色显示所有更改,这意味着这些更改未被跟踪
git in branch1 这就是两个分支之间的变化。因此,现在如果我在 branch1 中创建一个文件,将其添加到暂存区域然后提交,那么这些更改将在 branch1 中被跟踪,而不是在 branch2 中。因此,现在如果我使用命令显示分支 2 上的所有更改,那么它将以红色显示在 master 分支中完成的更改,并且仅在 branch2 中完成的更改将仅显示为绿色。以类似的方式,如果我们编写git diff branch2_name branch1_name那么它将以绿色显示在 branch1 中进行的所有更改,并以红色显示在 branch2 中进行的更改。
显示分阶段和非分阶段的更改
为了查看 git 中所有分阶段和非分阶段的更改,我们使用以下命令: git diff HEAD
我们还可以使用另外一个命令来实现这个特定的用例git status -vv它实际上告诉了哪些更改是为提交而哪些不是。
这里 - 符号下的所有更改都是未暂存的更改。
显示特定文件或目录的差异
git diff file_name
它显示了指定文件的上一次提交与尚未暂存的本地修改版本之间的所有更改。 - 符号下的所有更改均未上演。
它也适用于目录,并显示指定目录中所有文件的先前提交与本地修改之间的更改
尚未暂存的这些文件的版本。在这里,所有以绿色出现的变化都是未上演的变化。
要显示给定提交中某个文件版本与本地 HEAD 版本之间的差异,您可以指定该提交的提交 ID,并将其与您想要的本地头版本进行比较。本地头版本基本上是文件中所做的最新更改。
以绿色显示的更改是本地头版本,它是文件的当前状态,是文件中最近完成的更改。现在,如果您想查看两个单独提交之间的版本: git diff commit-id-1 commit-id-2 file_name。
在这里,我们可以看到两个单独的提交之间的版本,以绿色显示各自的提交 ID。要显示哈希 a1e7045 指定的版本与目录分支上的最新提交之间的差异,我们可以使用以下命令:
git diff commit-id branch_name directory_name/
显示当前版本和上一个版本之间的差异
git diff HEAD^ HEAD
此命令显示上一次提交和当前提交之间的更改。
补丁兼容的差异:有时我们只需要一个差异来应用补丁。所以这个命令是:
git diff --no-prefix > some_file.patch
由于这个 > 符号,这将创建一个 patch_file,并且该补丁文件将包含文件的更改,例如已暂存和未暂存的更改。一般来说,它向我们展示了线条的变化,绿色的线条是最近所做的变化。所以它的工作原理与 git diff 完全相同。
两个 Commit 或分支之间的区别
要查看两个分支之间的差异,我们使用以下命令:
git diff branch1_name branch2_name
要查看两个提交 ID 之间的差异,请使用以下命令:
git diff commit-id-1 commit-id-2
查看与当前分支的差异
git diff name_of_branch
用 commit_id 查看差异
git diff commit id
查看更改摘要
git diff --stat branch or we can write git diff -stat commit_id
查看特定提交后更改的文件
git diff --name-only commit-id
查看与分支不同的文件
git diff --name-only branch_name
查看提交后更改的文件夹中的文件
git diff --name-only commit-id folder-path