一.概述
git 版本多次提交之后,我们需要对比,2次提交之间修改了哪些文件;
二.命令
2.1 查看历史记录(通过这个命令,知道commitId)
a)、git log
b)、git log --pretty=oneline
c)、git log --oneline
d)、git reflog (HEAD@{移动到当前版本需要多少步})
5)、前进和后退
a)、基于索引值的操作(推荐做法)
2.2 git diff命令
git diff --stat 7413d78f9d5117b3ea7e89b7f32968a71401f8ba 8588f108631d444e4ae664c94314650655613846
//对比两个版本 两个版本号位置不影响(建议版本号1为当前版本号 方便下次上线直接使用)
//git diff --stat 版本号1 版本号2
git diff --stat 7413d78f9d5117b3ea7e89b7f32968a71401f8ba 8588f108631d444e4ae664c94314650655613846
用于比较两次修改的差异
A. 比较工作区与暂存区
git diff 不加参数即默认比较工作区与暂存区
B. 比较暂存区与最新本地版本库(本地库中最近一次commit的内容)
git diff --cached [<path>...]
C. 比较工作区与最新本地版本库
git diff HEAD [<path>...] 如果HEAD指向的是master分支,那么HEAD还可以换成master
D. 比较工作区与指定commit-id的差异
git diff commit-id [<path>...]
E.比较暂存区与指定commit-id的差异
git diff --cached [<commit-id>] [<path>...]
F. 比较两个commit-id之间的差异
git diff [<commit-id>] [<commit-id>]
G. 使用git diff打补丁
git diff > patch //patch的命名是随意的,不加其他参数时作用是当我们希望将我们本仓库工作区的修改拷贝一份到其他机器上使用,但是修改的文件比较多,拷贝量比较大,
此时我们可以将修改的代码做成补丁,之后在其他机器上对应目录下使用 git apply patch 将补丁打上即可
git diff --cached > patch //是将我们暂存区与版本库的差异做成补丁
git diff --HEAD > patch //是将工作区与版本库的差异做成补丁
git diff Testfile > patch//将单个文件做成一个单独的补丁