这是【Git 教程系列第 14 篇】,如果觉得有用的话,欢迎关注专栏。
工作中,我们将本地已修改的文件添加到暂存区,提交到版本库,最后推送到远端仓库,有时候我们想知道该文件与未修改前有什么区别,怎么办呢?
这就是我们要说的 git diff ,查看版本改动了什么的指令。我们先将修改的情况分为3种,如下所示
检查修改的二级命令都是 diff,针对不同的情况,只是参数有所不同而已,下面 一 一 详解
- 情况一:已修改,未添加到暂存区 —— git diff
- 情况二:已添加到暂存区,未提交到版本库 —— git diff --cached
- 情况三:已提交到版本库,未推送到远端库 —— git diff master origin/master
首先,我在本地建了一个 MyFile.txt 的空文本,在第一行写入 “测试不同情况下的版本改动。” 的内容,然后推送到远端,当做我们的初始版本。 接着把内容改为“验证不同情况下的版本改动”,注意此时文件已经是修改状态,只不过还没有添加到暂存区,然后我们运行 git diff 指令,截图如下 git diff 的结果告诉我们哪些文件已经做了哪些修改。
当然这是最简单的文件修改,如果工作区改动了很多文件,一个 git diff 会输出一大堆结果,眼花缭乱怎么办呢? 可以通过 git diff – 文件名1 文件名2 指令针对性的比较某几个文件的变化,注意,文件名可以使用通配符 “*”,并且 git diff – 后面有一个空格,然后再写文件名。
情况二:已添加到暂存区,未提交到版本库 —— git diff --cached接着,我们通过 git add . 指令把修改文件从工作区添加到暂存区,然后直接执行 git diff 指令,结果如下图所示 为什么我们把文件添加到暂存区执行 git diff 指令后,没显示任何修改呢? 这是因为 git diff 这个指令,只检查我们的 工作区和暂存区 之间的差异,如果想看 暂存区和版本库 之间的差异,就需要加一个参数 --cached,即 git diff --cached 指令。
这时我们就可以看到暂存区和版本库间的区别了。 同样的,可以通过指令 git diff --cached – 文件名1 文件名2 指令查看指定文件的修改。
接着我们用 git commit 指令把暂存区的已修改文件提交到版本库,然后再执行 git diff --cached 指令,我们不会看到有任何输出。
提交到版本库后想要查看修改了什么的话,就要使用 git diff master origin/master 指令。 如下图所示 master 就是你的版本库,origin/master 就是你的远程仓库,master 是主分支的意思,这里我只有一个分支,也是默认的分支 master,而 origin 代表的就是远程的意思。 查看自己远端仓库的详细信息可以使用 git remote -v 指令。
至此,查看版本改动指令 git diff 介绍完毕,如博文有错误,希望大家积极指出,让我们共同进步,共同成长。
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
结束语 技术是一点一点积累的,大神也不是一天就可以达到的。原地不动就是退步,所以每天进步一点点。 最后,附上一句格言:"好学若饥,谦卑若愚",望共勉。