git diff 用法总结

本文详细介绍了如何使用Git diff命令来比较不同状态间的代码差异,包括工作区与暂存区、暂存区与本地版本库、工作区与指定commit-id等,并讲解了如何使用git diff制作补丁文件以及补丁的应用。

Git diff

     用于比较两次修改的差异

    1.1 比较工作区与暂存区

      git diff不加参数即默认比较工作区与暂存区

    1.2 比较暂存区与最新本地版本库(本地库中最近一次commit的内容)

      git diff --cached  [<path>...] 

    1.3 比较工作区与最新本地版本库

      git diff HEAD [<path>...]  如果HEAD指向的是master分支,那么HEAD还可以换成master

    1.4 比较工作区与指定commit-id的差异

      git diff commit-id  [<path>...] 

    1.5 比较暂存区与指定commit-id的差异

      git diff --cached [<commit-id>] [<path>...] 

    1.6 比较两个commit-id之间的差异

      git diff [<commit-id>] [<commit-id>]

    1.7 使用git diff打补丁

      git diff > patch //patch的命名是随意的,不加其他参数时作用是当我们希望将我们本仓库工作区的修改拷贝一份到其他机器上使用,但是修改的文件比较多,拷贝量比较大,

      此时我们可以将修改的代码做成补丁,之后在其他机器上对应目录下使用 git apply patch 将补丁打上即可

      git diff --cached > patch //是将我们暂存区与版本库的差异做成补丁

       git diff --HEAD > patch //是将工作区与版本库的差异做成补丁

      git diff Testfile > patch//将单个文件做成一个单独的补丁

    拓展:git apply patch 应用补丁,应用补丁之前我们可以先检验一下补丁能否应用,git apply --check patch 如果没有任何输出,那么表示可以顺利接受这个补丁

       另外可以使用git apply --reject patch将能打的补丁先打上,有冲突的会生成.rej文件,此时可以找到这些文件进行手动打补丁 

  1.8 比较本地版本库与运程版本库

   git diff master origin/master [<path>...]

 1.9 比较本地工作区与运程版本库

  git diff origin/master [<path>...]

  1.10 比较暂存区与运程版本库

   git diff --cached origin/master [<path>...]

  1.11 统计文件的改动

  git diff --stat master origin/master [<path>...]

1.12 确认代码合并情况

   git diff -w [<path>...]

Git中的`git diff`命令用于比较文件、分支、提交和工作区之间的差异,以下是一些常见的使用方法: ### 比较工作区和暂存区的差异 ```bash git diff ``` 此命令会显示工作区中文件相对于暂存区文件的修改内容。例如,如果在工作区对`example.txt`文件进行了修改,但还未将这些修改添加到暂存区,使用`git diff`就能看到这些修改的具体内容[^1]。 ### 比较暂存区和最新提交的差异 ```bash git diff --staged # 或者 git diff --cached ``` 当把文件修改添加到暂存区后,使用这两个命令可以查看暂存区中的修改与最新提交之间的差异。比如对`test.py`文件修改后执行了`git add test.py`,此时使用`git diff --staged`就能看到暂存区中`test.py`相对于最新提交的变化[^1]。 ### 比较两个提交之间的差异 ```bash git diff <commit1> <commit2> ``` 其中`<commit1>`和`<commit2>`可以是提交的哈希值、分支名等。例如要比较`master`分支上的`commit1`和`commit2`之间的差异,可以使用`git diff commit1 commit2`。如果想比较`master`分支和`feature`分支最新提交的差异,可使用`git diff master feature`[^1]。 ### 比较工作区和某个提交之间的差异 ```bash git diff <commit> ``` 该命令能显示工作区文件相对于指定提交的修改情况。例如`git diff HEAD`,`HEAD`代表当前分支的最新提交,此命令会显示工作区相对于最新提交的差异[^1]。 ### 比较两个分支之间的差异 ```bash git diff <branch1> <branch2> ``` 用来查看两个不同分支之间的差异。例如查看`master`分支和`dev`分支的差异,使用`git diff master dev`。这能帮助开发者了解两个分支在代码上的不同之处,便于进行合并等操作[^1]。 ### 只显示差异文件的名称 ```bash git diff --name-only ``` 在某些情况下,可能只关心哪些文件发生了变化,而不关心具体的修改内容,此时使用该命令就能只列出有差异的文件名称[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值