git diff的最全最详细的4大主流用法

12 篇文章 0 订阅

1.git diff用来比较文件之间的不同,其基本用法如下:

(1)git diff:当工作区有改动,临时区为空,diff的对比是“工作区最后一次commit提交的仓库的共同文件”;当工作区有改动,临时区不为空,diff对比的是“工作区暂存区的共同文件”。

(2)git diff --cached 或 git diff --staged:显示暂存区(已add但未commit文件)最后一次commit(HEAD)之间的所有不相同文件的增删改(git diff --cached和git diff –staged相同作用)

(3)git diff HEAD:显示工作目录(已track但未add文件)和暂存区(已add但未commit文件)最后一次commit之间的的所有不相同文件的增删改。

(3.1)git diff HEAD~X或git diff HEAD^^^…(后面有X个^符号,X为正整数):可以查看最近一次提交的版本往过去时间线前数X个的版本之间的所有同(3)中定义文件之间的增删改。

(4)git diff <分支名1> <分支名2> :比较两个分支上最后 commit 的内容的差别

(4.1)  git diff branch1 branch2 --stat    显示出所有有差异的文件(不详细,没有对比内容)

(4.2)  git diff branch1 branch2              显示出所有有差异的文件的详细差异(更详细)

(4.3)  git diff branch1 branch2 具体文件路径 显示指定文件的详细差异(对比内容)

我们有2个分支:master、dev(dev为develop的缩写,应是开发新功能的Feature分支),查看这两个 branch 的区别,除了上面(abc)还有以下几种方式:

(4.4) git log dev ^master 查看 dev中log有的commit,而 master中log没有的commit

(4.5) git log master..dev查看 dev 中的log比 master 中的log多提交了哪些内容(注意,列出来的是两个点“..”后边(此处即dev)多提交的内容)

(4.6) git log dev...master 不知道谁提交的多谁提交的少,单纯想知道有什么不一样

(4.7) git log --left-right dev...master 在上述情况下,再显示出每个提交是在哪个分支上

注意 commit 后面的箭头,根据我们在 –left-right dev…master 的顺序,左箭头 < 表示是 dev 的,右箭头 > 表示是 master的,截图中表示这三个提交都是在 master 分支上的

 

git diff进阶文章1:git diff 和 git diff –cached 和 git diff HEAD~X(X为正数)实际应用中的区别对比

git diff进阶文章2:git diff的对比对象的争议?实际代码测试+详细解释

 

本文参考来源:

[1] https://blog.csdn.net/clxjoseph/article/details/80213315

[2] https://www.cnblogs.com/oxspirt/p/5970101.html

[3] https://blog.csdn.net/AsheAndWine/article/details/78982919

[4] https://blog.csdn.net/whbing1471/article/details/52065448

[5] https://www.jianshu.com/p/bb97fabb475e

[6] https://blog.csdn.net/qq_37281252/article/details/79064638

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐李同学(李俊德-大连理工大学)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值