沙滩星空的博客沙滩星空的博客

Git工具diff命令

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 <branch1> <branch2> 在两个分支之间比较

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

未经允许不得转载:沙滩星空的博客 » Git工具diff命令

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址