如何使用git比较两次commit之间的差异文件
来源:互联网 发布:java 安装 tensorflow 编辑:程序博客网 时间:2024/06/05 05:07
如何使用git比较两次commit之间的差异文件
有时候需要查看两次提交之间的差异。
只需下面几个步骤即可。
1.git log 查看提交历史 如下:
commit 5dab4a955535fcc42832ce33696489d8e8b232ec
Author: songchong <songchong@artekmicro.com>
Date: Tue Aug 22 20:10:08 2017 +0800
git commit 5th
commit c324747f80f9612f59dd7b575136261dd6dff01d
Author: songchong <songchong@artekmicro.com>
Date: Tue Aug 22 20:07:32 2017 +0800
git commit fourth
commit 2584c25bc1288e9519f78b53cda9081978c56735
Author: songchong <songchong@artekmicro.com>
Date: Tue Aug 22 19:47:47 2017 +0800
git commit three
commit b8b70ca89eb574a12b1b49c5f454d5e0525f60d6
Author: songchong <songchong@artekmicro.com>
Date: Tue Aug 22 19:45:34 2017 +0800
git commit two
commit d13fd344d51d042cf48a8acab43070550cff9ce4
Author: songchong <songchong@artekmicro.com>
Date: Tue Aug 22 19:44:42 2017 +0800
git commit one
如果我们想查看第四次和第五次提交之间的差异。
git diff hash1 hash2 --stat 显示第四次和第五次这两次提交的差异文件
即:
songchong@srv-artek-pad:~/mytest/songchong$ git diff c324747f80f9612f59dd7b575136261dd6dff01d 5dab4a955535fcc42832ce33696489d8e8b232ec --stat
test | 4 ++--
test2 | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
songchong@srv-artek-pad:~/mytest/songchong$
可以看出,git列出了四五两次提交之间的差异文件是 test 和 test2.
如果想进一步查看test修改了那些地方:
只需将 git diff hash1 hash2 --stat 中的 --stat改为具体的文件即可
songchong@srv-artek-pad:~/mytest/songchong$ git diff c324747f80f9612f59dd7b575136261dd6dff01d 5dab4a955535fcc42832ce33696489d8e8b232ec test
diff --git a/test b/test
index 6d6cdbb..60781a8 100644
--- a/test
+++ b/test
@@ -1,6 +1,6 @@
-
+6666666666666666666
llllllllllllllaaaa
-
+8888888888888888888
dsfsdkgdfkghjjh
songchong@srv-artek-pad:~/mytest/songchong$
如果想将两次提交的差异部分提取成补丁文件,git diff hash1 hash2 filename > patch_name
songchong@srv-artek-pad:~/mytest/songchong$ git diff c324747f80f9612f59dd7b575136261dd6dff01d 5dab4a955535fcc42832ce33696489d8e8b232ec test > testpatch
songchong@srv-artek-pad:~/mytest/songchong$ cat testpatch
diff --git a/test b/test
index 6d6cdbb..60781a8 100644
--- a/test
+++ b/test
@@ -1,6 +1,6 @@
-
+6666666666666666666
llllllllllllllaaaa
-
+8888888888888888888
dsfsdkgdfkghjjh
如果想将多个文件的差异生成到同一patch文件 则:git diff hash1 hash2 filename1 filename2 > patch_name
git diff c324747f80f9612f59dd7b575136261dd6dff01d 5dab4a955535fcc42832ce33696489d8e8b232ec test test2 > testpatch
生产补丁后,到相关目录里面可以打补丁。
pathc -p1 < patch_name
其中-p1是代表忽略当前目录下的几级目录。
有时候需要查看两次提交之间的差异。
只需下面几个步骤即可。
1.git log 查看提交历史 如下:
commit 5dab4a955535fcc42832ce33696489d8e8b232ec
Author: songchong <songchong@artekmicro.com>
Date: Tue Aug 22 20:10:08 2017 +0800
git commit 5th
commit c324747f80f9612f59dd7b575136261dd6dff01d
Author: songchong <songchong@artekmicro.com>
Date: Tue Aug 22 20:07:32 2017 +0800
git commit fourth
commit 2584c25bc1288e9519f78b53cda9081978c56735
Author: songchong <songchong@artekmicro.com>
Date: Tue Aug 22 19:47:47 2017 +0800
git commit three
commit b8b70ca89eb574a12b1b49c5f454d5e0525f60d6
Author: songchong <songchong@artekmicro.com>
Date: Tue Aug 22 19:45:34 2017 +0800
git commit two
commit d13fd344d51d042cf48a8acab43070550cff9ce4
Author: songchong <songchong@artekmicro.com>
Date: Tue Aug 22 19:44:42 2017 +0800
git commit one
如果我们想查看第四次和第五次提交之间的差异。
git diff hash1 hash2 --stat 显示第四次和第五次这两次提交的差异文件
即:
songchong@srv-artek-pad:~/mytest/songchong$ git diff c324747f80f9612f59dd7b575136261dd6dff01d 5dab4a955535fcc42832ce33696489d8e8b232ec --stat
test | 4 ++--
test2 | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
songchong@srv-artek-pad:~/mytest/songchong$
可以看出,git列出了四五两次提交之间的差异文件是 test 和 test2.
如果想进一步查看test修改了那些地方:
只需将 git diff hash1 hash2 --stat 中的 --stat改为具体的文件即可
songchong@srv-artek-pad:~/mytest/songchong$ git diff c324747f80f9612f59dd7b575136261dd6dff01d 5dab4a955535fcc42832ce33696489d8e8b232ec test
diff --git a/test b/test
index 6d6cdbb..60781a8 100644
--- a/test
+++ b/test
@@ -1,6 +1,6 @@
-
+6666666666666666666
llllllllllllllaaaa
-
+8888888888888888888
dsfsdkgdfkghjjh
songchong@srv-artek-pad:~/mytest/songchong$
如果想将两次提交的差异部分提取成补丁文件,git diff hash1 hash2 filename > patch_name
songchong@srv-artek-pad:~/mytest/songchong$ git diff c324747f80f9612f59dd7b575136261dd6dff01d 5dab4a955535fcc42832ce33696489d8e8b232ec test > testpatch
songchong@srv-artek-pad:~/mytest/songchong$ cat testpatch
diff --git a/test b/test
index 6d6cdbb..60781a8 100644
--- a/test
+++ b/test
@@ -1,6 +1,6 @@
-
+6666666666666666666
llllllllllllllaaaa
-
+8888888888888888888
dsfsdkgdfkghjjh
如果想将多个文件的差异生成到同一patch文件 则:git diff hash1 hash2 filename1 filename2 > patch_name
git diff c324747f80f9612f59dd7b575136261dd6dff01d 5dab4a955535fcc42832ce33696489d8e8b232ec test test2 > testpatch
生产补丁后,到相关目录里面可以打补丁。
pathc -p1 < patch_name
其中-p1是代表忽略当前目录下的几级目录。
阅读全文
1 0
- 如何使用git比较两次commit之间的差异文件
- diff比较两个文件之间的差异
- git 比较同一文件的不同的两个版本之间的差异
- git 合并最后两次的commit
- WinMerge 比较文件夹与文件夹之间的文件差异
- git比较两个分支的文件的差异
- 如何在git导出分支之间差异文件的压缩包,类似svn的导出变化文件功能
- git如何知晓文件差异
- git 导出版本之间差异文件
- git commit 两次导致无法push的问题解决
- 如何修改git commit所使用的编辑器为vim
- git使用点滴:如何查看commit的内容
- 设置git使用vimdiff比较差异
- 比较数据库表结构之间的差异
- git diff:对比working tree、stage、commit文件之间的不同
- 从git里面提取两个commit之间变更过的文件
- 利用eclipse比较两个文件的代码差异或者一个文件不同版本之间的异同
- Git diff 比较不同版本的差异
- Docker 安装 Gitlab
- c语言中typeof关键字
- 谈Linux的总线、设备、驱动模型——让天堂的归天堂,让尘土的归尘土
- 敌兵布阵 hdu 1166
- java 无法加载主类
- 如何使用git比较两次commit之间的差异文件
- JS中String()与 .toString()的区别
- jquery中object对象循环遍历的方法
- 机器人运动估计系列(二)——运动学方程(上)
- Servlet(2)
- 0823
- Tomcat 简介
- nui字典组件使用
- 学习记录--颤抖吧,hadoop(五)---搭建完全分布式hadoop集群(2)