Git diff
用于比较两次修改的差异
工作区:add 命令之前。 ||||| 暂存区:add后,commit前。 ||||| 本地版本库:commit后。
比较工作区与暂存区的文件差异(仅仅比较统计信息),以下三种比较都可加--stat参数
git diff --stat
比较工作区与暂存区的文内容差异(默认)
git diff
比较暂存区与最新本地版本库 --staged与--cached同
git diff --cached [filename]
比较工作区与最新本地版本库
git diff HEAD [filename]
比较(工作区)当前文件和暂存区差异。以上三个命令,也可加文件名[filename]进行比较。
git diff filename
git diff commit-id [filename] 比较工作区与指定commit-id的差异
git diff --cached commit-id [filename] 比较暂存区与指定 commit-id 的差异
git diff commit-id commit-id 比较两个commit-id之间的差异
git diff
1.打补丁。补丁patch文件名随意。如xxx.patch
将工作区与暂存区差异做成补丁
git diff > xxx.patch
or 将暂存区与版本库的差异做成补丁
git diff --cached > xxx.patch
or 将工作区与版本库的差异做成补丁
git diff --HEAD > xxx.patch
or 将指定两次提交的差异做成补丁
git diff 【commit sha1 id】 【commit sha1 id】 > 【diff文件名】
2.把前面生成的补丁文件,复制到需要打补丁的项目文件夹下。
3. 检查patch/diff是否能正常打入。如果没有任何输出,表示可以顺利接受该补丁。
git apply --check 【path/to/xxx.patch】
4.打入patch/diff:
git apply 【path/to/xxx.patch】
or
git am 【path/to/xxx.patch】
5打补丁出现冲突,可用命令:
git apply --reject xxxx.patch
将能打的补丁先打上,有冲突的会生成.rej文件,此时可以找到这些文件进行手动打补丁
打入patch冲突时,可以执行git am --skip跳过此次冲突,也可以执行git am --abort回退打入patch的动作,还原到操作前的状态。
https://www.yiibai.com/git/git_diff.html
https://www.jianshu.com/p/ec04de3f95cc?utm_source=oschina-app