git diff 命令

git diff 命令可以对比两个版本的差异,具体来说包括:

  1. 本地工作区和暂存区的diff信息:git diff 或者 git diff file
  2. 暂存区和版本库的diff信息(使用git add 将工作区修改保存到了暂存区后):git diff --cached
  3. 版本库中不同commit、分支的diff信息(使用git commit 将暂存区修改提交到了版本库):git diff commit1 commit2 或 git diff branch1 branch2

技巧:一般将要对比的分支/commitid名字放到第二个参数,这样对比起来比较直观。

1、分支diff:

1)基本操作

  • git diff branch1 branch2 --stat //--stat参数,显示两分支简单diff信息
  • git diff branch1 branch2 //显示两分支详细的diff信息
  • git diff branch1 branch2 path //显示两分支指定路径下文件的详细diff信息
  • git diff branch1 branch2 file_name(带路径) //显示两分支指定文件的详细diff信息

注:这里的分支可以是本地的,也可以是远程的(git diff branch1 origin/branch2)

2)查看当前目录和另外一个分支的差别:

我们都知道,正常情况下只有我们用commit命令提交到了版本库,才可以使用git diff branch1 branch2 命令来查看分支间的diff信息。

有的时候我们在工作区开发完(可以保存到暂存区),不想提交到当前分支的版本库中,想查看一下其他分支和我当前改动的diff信息,然后再确定是否要提交到版本库中,该如何做呢?可以使用如下命令:查看当前目录和另外一个分支的差别(当前目录未提交到版本库)

git diff branch

然后使用commit将暂存区修改提交到版本库,就可以使用git diff master test_3查看了:

2、版本的diff:

git diff commitid1 commitid2

上述命令可以查看不同提交的差异。

我们都知道HEAD(大写)可以理解成当前分支的最新提交,HEAD^表示上一个提交(也可以写成HEAD~1),HEAD~n表示当前分支前n次提交。

由于commitid是一个32位的串比较难书写,可以使用HEAD来简单代替:

猜你喜欢

转载自blog.csdn.net/liuxiao723846/article/details/109689069