通过实例讲解git diff 的各种用法

本文详细介绍了Git的diff命令,包括查看工作区与暂存区、本地仓库、不同版本间的差异,以及如何比较分支差异。通过多个实例演示了如gitdiffHEAD、gitdiff--cached、gitdiffHEAD^等命令的使用,帮助读者理解Git版本控制中的文件差异检查。
摘要由CSDN通过智能技术生成

参考文献:
git diff输出信息的含义
git diff的最全最详细的4大主流用法
git diff 的简单使用(比较版本区别)

git diff #查看 workspace(工作区) 与 (暂存区) 的差别的;
git diff p.py #查看 workspace(工作区)p.py文件 与 (暂存区) p.py文件的差别。
git diff HEAD #查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本);
git diff --cached # 查看暂存区与 local repositorty(本地仓库) 的差别的;
git diff HEAD^ # 查看当前工作区与上一个版本的差别;
git diff HEAD^^ # 查看工作区与上上个版本的的差别,以此类推;
git diff HEAD~1 # 查看工作区与上一个版本的差别;
git diff HEAD~2 # 查看工作区与上上一个版本的差别,以此类推;
git diff master dev #比较两个分支上最后 commit 的内容的差别;
git diff master dev --stat #显示出所有有差异的文件(不详细,没有对比内容);
git log dev ^master #查看commit记录中, dev有而 master没有的commit;
git log master…dev # 不知道谁提交的多谁提交的少,单纯想知道有什么不一样;
git log --left-right dev…master #在上述情况下,再显示出每个提交是在哪个分支上;

新建三个文件,分别为p.py、t.py和z.py,内容分别为:

#p.py
p=1
#t.py
t=1
#z.py
z=1

然后

git init
git add .
git commit -m '1'

分别修改p.py、t.py和z.py,内容分别为:

#p.py
p=1
p=2
#t.py
t=1
t=2
#z.py
z=1
z=2

然后执行:

git status

在这里插入图片描述
可以看到有三个文件被修改。
执行:

git diff

#查看 workspace(工作区) 与 (暂存区) 的差别的。
在这里插入图片描述

git diff p.py

#查看 workspace(工作区)p.py文件 与 (暂存区) p.py文件的差别。
在这里插入图片描述
执行:

git diff HEAD

查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本)
在这里插入图片描述

将p.py提交到暂存区

git add p.py

执行:

git status

在这里插入图片描述
执行:

git diff

由于工作区的p.py和暂存区的p.py是相同的,因此只有t.py和z.py的不同
在这里插入图片描述
执行:

git diff HEAD

由于p.py现在只更新到暂存区,因此工作区和仓库区会有三个文件的不同。
在这里插入图片描述
执行:

git diff --cached

查看暂存区与 local repositorty(本地仓库) 的差别的。
由于暂存区只有p.py更新了,所以暂存区和仓库区只有p.py是有差别的。
在这里插入图片描述
执行:

git log --oneline

只有一次提交
在这里插入图片描述

git diff HEAD^

查看当前工作区与上一个版本的差别。
最新版本的上一个版本就用 HEAD^ 表示, 依次类推 那么最新版本的 上一个版本的上一个版本就是 HEAD^^
由于只有一个版本,也就是当前最新的版本,因此无法使用该命令查看当前工作区与上一个版本的差别。
在这里插入图片描述
执行:

git add .
git commit -m '2'

执行:

git diff HEAD^

查看工作区与上一个版本的差别

在这里插入图片描述
修改p.py和t.py文件:

#p.py
p=1
p=2
p=3
#t.py
t=1
t=2
t=3
#z.py
z=1
z=2

执行:

git status

在这里插入图片描述
执行:

git diff HEAD

查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本)
在这里插入图片描述
执行:

git diff HEAD^

查看工作区域上一个版本的区别
在这里插入图片描述
执行:

git diff HEAD~1

查看工作区与上一个版本的差别
git diff HEAD~X X 代表^ 的个数。 即: git diff HEAD~1 代表最新版本的上一个版本。 git diff HEAD~2 代表最新版本的上一个版本的上一个版本。
在这里插入图片描述
执行:

git add .
git commit -m '3'

修改p.py和t.py文件:

#p.py
p=1
p=2
p=3
p=4
#t.py
t=1
t=2
t=3
t=4
#z.py
z=1
z=2

执行:

git diff HEAD^^

查看工作区与上上个版本的的差别:
在这里插入图片描述

git diff HEAD~2

查看工作区与上上个版本的的差别:
在这里插入图片描述
执行:

git add .
git commit -m '4'

执行:

git checkout -b dev

新建一个dev分支:

修改p.py、t.py和z.py文件:

#p.py
p=1
p=2
p=3
p=4
dev_p=1
#t.py
t=1
t=2
t=3
t=4
dev_t=1
#z.py
z=1
z=2
dev_z=1

执行:

git diff master dev

比较两个分支上最后 commit 的内容的差别.
因为dev分支上虽然有修改的文件,但没有提交,所以最后一次commit是相同的。
在这里插入图片描述
执行:

git commit -am 'dev 1'

再次执行:

git diff master dev

dev分支和master分支相比,有哪些变化。
在这里插入图片描述
执行:

git diff dev master

master分支和dev分支相比,有哪些变化。
在这里插入图片描述
执行:

git diff master dev --stat

显示出所有有差异的文件(不详细,没有对比内容)
在这里插入图片描述

git diff master dev p.py

显示指定文件的详细差异(对比内容)
在这里插入图片描述

git diff dev master p.py

显示指定文件的详细差异(对比内容)
在这里插入图片描述
执行:

git checkout master

修改p.py、t.py和z.py文件:

#p.py
p=1
p=2
p=3
p=4
master_p=1
#t.py
t=1
t=2
t=3
t=4
master_t=1
#z.py
z=1
z=2
master_z=1

执行:

 git commit -am 'master 1'

修改p.py、t.py和z.py文件:

#p.py
p=1
p=2
p=3
p=4
master_p=1
master_p=2

执行:

 git commit -am 'master 2'

git log dev ^master

查看commit记录中, dev有而 master没有的commit。
在这里插入图片描述

git log master ^dev

查看commit记录中, master有而dev没有的commit。
在这里插入图片描述

git log master…dev

不知道谁提交的多谁提交的少,单纯想知道有什么不一样
在这里插入图片描述

git log dev...master

不知道谁提交的多谁提交的少,单纯想知道有什么不一样
在这里插入图片描述

git log --left-right dev…master

在上述情况下,再显示出每个提交是在哪个分支上
注意 commit 后面的箭头,根据我们在 –left-right dev…master 的顺序,左箭头 < 表示是 dev 的,右箭头 > 表示是 master的。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值