作者:疯子晨晨农_481 | 来源:互联网 | 2024-11-15 09:52
在日常开发中,完成一个分支的开发并准备提交之前,我们通常需要确认自己在哪些地方进行了代码修改,以确保没有误操作。这时,Git 的 diff
命令就能派上用场了。
git diff
: 显示当前工作目录与上次提交之间的差异,帮助你了解本次修改的内容。
git diff file_name
: 显示指定文件的修改情况。
执行 git diff
命令后,你可能会看到类似以下的输出:
diff --git a/f1 b/f1
index 8f86bb9..d74049c 100644
- a/f1
+++ b/f1
@@ -1,7 +1,7 @@
code
code
code
-code
+code
code
code
code
下面我们来逐行解析这些输出,以便更好地理解你的代码修改。
第一行表示结果为 Git 格式的 diff 输出
diff --git a/f1 b/f1
这里表示比较的是 a 版本的 f1 文件(即修改前)和 b 版本的 f1 文件(即修改后)。
第二行表示两个版本的 Git 哈希值和文件模式
index 7a67204..8213f76 100644
这里的 index 7a67204..8213f76
表示 a 版本的 f1 文件(哈希值为 7a67204)与 b 版本的 f1 文件(哈希值为 8213f76)之间的差异。最后的 100644
表示文件的权限模式,类似于 Linux 文件权限中的 rw-r--r--
。
第三四行表示进行比较的两个文件
- a/f1
+++ b/f1
这里的 -
表示修改前的文件版本,+++
表示修改后的文件版本。
第五行表示代码变动的位置
@@ -1,7 +1,7 @@
这里的 -1,7
表示第一个文件(即 f1)从第 1 行开始的连续 7 行。+1,7
表示修改后的文件从第 1 行开始的连续 7 行。
变动的具体内容
code
code
code
-code
+code
code
code
code
每一行前面的符号表示该行的变化类型:-
表示删除的行,+
表示新增的行,无符号表示该行无变化。
其他常用命令
$ git diff --cached
显示已添加到暂存区但尚未提交的文件与上次提交之间的差异。
$ git diff HEAD
显示当前工作目录与最近一次提交之间的所有差异。这些差异会在执行 git commit -a
命令时被提交。
$ git diff test
显示当前工作目录与名为 test
的分支之间的差异。
$ git diff HEAD -- ./lib
显示当前工作目录下的 lib
目录与最近一次提交之间的差异。
$ git diff --stat
统计被修改的文件数量及行数变化。
推荐阅读:
Git-【技术干货】工作中 Git 的使用实践
shell-【技术干货】编写 Shell 脚本所需的语法和示例
Git - 使用 Git 时不了解其内部机制怎么行
参考:博客 博客
如果转载此文章,请附上本文链接,谢谢合作~
如果感觉这篇文章对您有所帮助,请“点赞”或“关注”博主,您的支持将是我前进的最大动力!