Git diff 比较两个版本文件之间的差异

Git diff 比较两个版本文件之间的差异,第1张

例如,比较工作区和漏中暂存区的app/src/main/java/com/qiandai/zhudb/mvp/MediaSortSelectorContract.kt文件差异

git diff 还可以制作补丁文件,在其他机器上对应目录虚袭下使用 git apply patch 将补丁打上即差搜兄可

注意:

要导出Git仓库中某两次提交之间的文件差异,必须要先知道有哪些文件发生了差异。 git diff 指令能很方便的协助我们完成这样的 *** 作。

本次课题中所使用到的 git diff 指令的用法是 git diff COMMIT_ID_1 COMMIT_DI_2 ,其中的 COMMIT_ID_X 就是通过 git log 指令查看到的提交ID。一般情况下, commit_id 取前六位就可以了。

以下就是我随便在一个仓库执行以上改御指令的结果截图:

仔细观察 git diff --name-only 指令的执行结果,这不正是这些文件 在根目录中的相对地址 嘛?结合 xargs 指令可以非常快速地将差异文件给打包了。我比较习惯用 tar 指令进行压缩。

本次执行的指令如下

查看D盘目录,确实生成了 a.tar.gz 文件,里面的目录结构和项目的结构保持一致,并且只包含差异文件,如下图所示。

以上的 COMMIT_ID_X 其实可以用HEAD [1] 来代替,比如 HEAD 表示当前提交, HEAD^ 表示上一次提交, HEAD^^ 表示上上次提交,所以我们输出当前和上次提交的差异就可以写成这样 git diff --name-only HEAD^ HEAD 。其中可以省略后面的 HEAD ,因为指令会默认拿 HEAD^ 和当前提交作比对;

还有一种写法: HEAD~0 表棚歼芹示当前提交, HEAD~1 表示上一次提链毕交, HEAD~2 表示上上次提交,以此类推。

你好,gitdiffHEAD是以当前文件和git库里面的文件做DIFF,你输入命令后显示的意思不是a/目录下的洞游唤wanglei.txt和b/目录下wanglei.txt之间不一样,而是a/wanglei.txt代表你提交到git库里面文纳凯件wanglei.txt,而b/wanglei.txt是后来你在本地做了修改的wanglei.txt文件,都是在当前的磨宴目录下wanglei.txt,不过一个是已经被提交到git库里面了,另一个是你刚刚替换了,和之前的不一样了,所以gitdiff会显示这个结果,如果你想学习git我推荐你看下progit和git权威指南下载链接5859863


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12266655.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存