热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解析Gitdiff命令的输出结果

本文详细解析了Gitdiff命令的输出结果,帮助开发者更好地理解和使用这一重要工具。

在日常开发中,完成一个分支的开发并准备提交之前,我们通常需要确认自己在哪些地方进行了代码修改,以确保没有误操作。这时,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

下面我们来逐行解析这些输出,以便更好地理解你的代码修改。

  1. 第一行表示结果为 Git 格式的 diff 输出
    diff --git a/f1 b/f1
    这里表示比较的是 a 版本的 f1 文件(即修改前)和 b 版本的 f1 文件(即修改后)。

  2. 第二行表示两个版本的 Git 哈希值和文件模式
    index 7a67204..8213f76 100644
    这里的 index 7a67204..8213f76 表示 a 版本的 f1 文件(哈希值为 7a67204)与 b 版本的 f1 文件(哈希值为 8213f76)之间的差异。最后的 100644 表示文件的权限模式,类似于 Linux 文件权限中的 rw-r--r--

  3. 第三四行表示进行比较的两个文件
    - a/f1
    +++ b/f1
    这里的 - 表示修改前的文件版本,+++ 表示修改后的文件版本。

  4. 第五行表示代码变动的位置
    @@ -1,7 +1,7 @@
    这里的 -1,7 表示第一个文件(即 f1)从第 1 行开始的连续 7 行。+1,7 表示修改后的文件从第 1 行开始的连续 7 行。

  5. 变动的具体内容
    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 时不了解其内部机制怎么行

参考:博客 博客

如果转载此文章,请附上本文链接,谢谢合作~

如果感觉这篇文章对您有所帮助,请“点赞”或“关注”博主,您的支持将是我前进的最大动力!


推荐阅读
author-avatar
疯子晨晨农_481
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有