diff and patch

diff的选项挺多,但这里只介绍最常用的三个,其他的,还是看man diff吧:
[list]
[*]-r: 递归比较文件夹下的文件
[*]-N: 如果某个比较的文件为不存在,则视为空文件
[*]-u: unified,diff的结果进行格式化输出(可读性更好)
[/list]

所以,diff的一般用法是: diff -Nur old_version new_version >> mods.diff

patch使用diff文件的输出,所以两者总是配对使用。但patch不仅可以支持diff产生的输出,也可使用svn/git等工具生成的diff。

patch的三个常用选项:
[list]
[*] -p NUM: 产生的diff文件,包含diff时使用的to-file(上面的old_version)的path,path有层级,比如:/myproject/model/people/profile.py,但这个path不总是正确,因为diff文件的位置是可以移动的,比如,在/目录,按照path去打patch没有问题,但把diff文件保存在/myproject目录下,则找不到/myproject/model/people/profile.py这个路径了。这个-p属性就是用来去掉path中斜杠(/)的数量。默认情况下,path是profile.py。-p1:myproject/model/people/profile.py。-p2:model/people/profile.py。-p3: people/profile.py。-p4: profile.py。所以patch -p0 和patch是不一样的,注意了。
[*] -R: 即--reverse,打过patch,如果想要取消,则加上此选项
[*]-b: 给打patch的文件进行备份,比如要对profile.py文件打patch,打完之后发现会多一个hello.py.orig文件
[/list]

patch的一般用法: patch -pNUM < patchfile,NUM视具体情况而定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面我会更详细地介绍 Git Diff 格式。 在 Git 中,Diff 是指两个版本之间的差异,也就是修改前后的差别。Git 提供了多种不同的 Diff 格式,以便用户查看修改的内容、文件名、行数等信息。 下面是 Git Diff 常用的几种格式: 1. 经典 Diff 格式 经典 Diff 格式是一种以文本行的方式显示修改前后的差异的格式。使用 - 和 + 符号分别表示删除和添加的行,以便用户更清楚地看到修改的内容。 输出示例: ``` diff --git a/file1.txt b/file1.txt index 23f1a3b..a0c8f82 100644 --- a/file1.txt +++ b/file1.txt @@ -1,4 +1,4 @@ -This is the original content. +This is the modified content. And here is some more content. -And some more. +And even more. ``` 2. 统一上下文格式(Unified Context Format) 统一上下文格式在经典格式的基础上增加了上下文信息,以便更好地理解修改的上下文环境。每个修改块都会显示修改前后的上下文信息,以及修改的行数和内容。 输出示例: ``` diff --git a/file1.txt b/file1.txt index 23f1a3b..a0c8f82 100644 --- a/file1.txt +++ b/file1.txt @@ -1,4 +1,4 @@ -This is the original content. +This is the modified content. And here is some more content. -And some more. +And even more. ``` 3. 统一格式(Unified Format) 统一格式在统一上下文格式的基础上,将修改前后的差异合并在一起,以便更好地比较和理解修改的效果。修改前后的差异都会显示在同一行,使用 - 和 + 符号表示删除和添加的内容。 输出示例: ``` diff --git a/file1.txt b/file1.txt index 23f1a3b..a0c8f82 100644 --- a/file1.txt +++ b/file1.txt @@ -1,4 +1,4 @@ -This is the original content. +This is the modified content. And here is some more content. -And some more. +And even more. ``` 4. Git Diff 格式 Git Diff 格式是一种更加详细的 Diff 格式,可以显示修改的文件名、文件模式、文件内容等详细信息。通过 Git Diff 命令可以查看某个 commit 或者分支与当前分支的差异,也可以查看两个分支之间的差异。 输出示例: ``` diff --git a/file1.txt b/file1.txt index 23f1a3b..a0c8f82 100644 --- a/file1.txt +++ b/file1.txt @@ -1,4 +1,4 @@ -This is the original content. +This is the modified content. And here is some more content. -And some more. +And even more. ``` 除了以上几种常见的 Diff 格式,Git 还支持其他一些格式,比如 Git Patch 格式、Git Email 格式等。希望这些信息对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值