git diff 命令

使用Git时,通常会使用不同的分支,以使工作与主代码库清晰地分开。但是,在这些分支上工作时,您可能希望合并分支,以使最终的工作在主分支中。在合并之前,您已经知道必须比较两个分支之间的差异。比较两个分支非常有益:可以将其用作查看是否存在合并冲突的快速方法。

比较两个分支

为了轻松比较两个分支,您必须使用“ git diff”命令并提供用点分隔的分支名称。

$ git diff branch1..branch2

使用此命令,Git将比较两个分支的尖端(也称为HEAD),并显示“ diff”概要,您可以用来查看修改,简而言之,它将向您显示“ branch2”中所有不在“ branch1”中的提交。

为了查看在master分支和feature分支之间进行了哪些修改,您可以运行以下命令。

$ git diff master..feature

diff --git a/file-feature b/file-feature
new file mode 100644
index 0000000..add9a1c
--- /dev/null
+++ b/file-feature
@@ -0,0 +1 @@
+this is a feature file

使用三点语法比较两个分支

为了比较两个分支,还可以使用“ git diff”命令并提供由三个点分隔的分支名称。

$ git diff branch1...branch2

将“git diff”与三个点一起使用会将右边分支(HEAD)的顶部与两个分支的共同祖先进行比较。

那么,应该使用哪种方法比较两个分支?
在大多数情况下,您都希望使用第一种方法,即仅使用两个点来比较两个分支。
为什么?
开发新功能时,大部分时间都是在自己的分支上进行。
但是,在自己的分支上进行开发并不能阻止您检出的分支具有其他提交。
每当您从master分支中签出一个新分支时,情况尤其如此:在处理功能时,其他提交可能会集成到master中。

比较两个分支之间的commit

在某些情况下,您可能会对了解两个分支之间的提交差异感兴趣。
为了查看两个分支之间的提交差异,请使用“ git log”命令并​​指定要比较的分支。

$ git log branch1..branch2

请注意,此命令不会显示两个分支之间的实际文件差异,而只会显示提交。
回到我们之前提供的示例,将比较master和feature分支之间的提交差异

$ git log master..feature

commit 802a2abed7f88d67e0ab9a0e780b858651c5813b (HEAD -> feature, origin/feature)
Author: SCHKN <test@gmail.com>
Date:   Wed Dec 4 13:10:01 2019 -0500

    feature commit

如果您对该命令提供的所有信息都不感兴趣,可以使用一种方法来缩短提交行。
为了使用提交缩写来比较两个分支,请使用带有以下选项的“ git log”命令。

$ git log --oneline --graph --decorate --abbrev-commit branch1..branch2

比较两个分支之间的特定文件

为了查看两个分支之间对文件所做的区别,请使用“ git diff”命令,指定两个分支和文件名。

$ git diff master..feature -- <file>

为了查看对此文件所做的区别,您将运行以下命令

$ git diff master..feature -- README

diff --git a/README b/README
new file mode 100644
index 0000000..add9a1c
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+this is the README file

通过以上的说明,git diff的使用就说明清楚了,在使用git做版本控制时请多使用git diff命令。

tmux常用命令
SQL基本编码规范