网易首页 > 网易号 > 正文 申请入驻

学会使用 diff 和 patch 命令协同开发

0
分享至

本文我们就来聊聊,怎么使用 diff 和 patch 命令进行协作开发。

之前我在公司上班的时候,需要经常跟外国同事一起协同开发(之前在外企上班)。由于是异地协作,所以沟通几乎全部是通过邮件。

我们有使用 Git 进行代码版本管理,但有时为了快速验证,外国同事非常喜欢发个 patch 包过来让我们做测试。这也是我第一次在工作中使用 diff 和 patch 命令。

简单来讲,diff 命令可以用来创建一个差异文件,然后接收者可以使用 patch 命令将这部分差异代码应用到自己的代码里,达到协同开发的目的。

本文我们就来聊聊,怎么使用 diff 和 patch 命令进行协作开发。

一个简单的例子

大家的业务及所使用的编程语言都不一样,所以为了便于叙述与理解,这里不使用具体的代码,而是一起编写一个具有一定逻辑的步骤文档。

假设你和我正在合作编写一个描述如何泡茶的文件。

下面是你写的代码部分:

Boil water.
Warm the teapot.
Add tea and water to the teapot.
Place a tea cosy over the teapot.
Steep for 6 minutes.
Pour tea into cup.
Add milk.

你家不种茶,也没有泡茶经验,所以这里有很多优化空间。

我家毕竟是多年种茶老司机,也培养出多名优秀的卖茶女业务代表,所以我大笔一挥,改进了一下泡茶步骤。

我先将文件复制为 tea-revision.md ,然后在此基础上进行修改,得到以下内容:

Warm a teapot in the proving drawer of your oven.
Boil water.
Add tea leaves to a tea strainer.
Add strainer and water to teapot.
Steep for 6 minutes. Keep it warm with a tea cosy.
Pour tea into cup.
Optionally, add warm milk.

在这里,有几行代码语句没有任何改动,比如 Boil water 和 Pour tea into cup ;新增了几行代码,比如第一行 ,而有些行则进行了改动(增加或减少了部分内容)。

这么优秀的代码,你不应用的话太可惜了~

使用diff命令创建差异

我如果直接把写好的代码丢给你,你肯定一头雾水,需要自己去对比两份代码的差异,费时费力。这时 diff 命令就派上用场了。

diff 命令可以直观显示两个文件之间的差异,使用 --unified (或者简写为 -u)选项可以显示哪些行被添加或删除。默认情况下,diff 会将差异结果输出打印到终端。

$ diff --unified tea.md tea-revised.md
--- tea.md 2021-11-13 10:26:25.082110219 +1300
+++ tea-revised.md 2021-11-13 10:26:32.049110664 +1300

+Warm a teapot in the proving drawer of your oven.
Boil water.
-Warm the teapot.
-Add tea and water to the teapot.
-Place a tea cosy over the teapot.
-Steep for 6 minutes.
+Add tea leaves to a tea strainer.
+Add strainer and water to teapot.
+Steep for 6 minutes. Keep it warm with a tea cosy.
Pour tea into cup.
-Add milk.
+Optionally, add warm milk.

在这个差异显示中,加号 ( + ) 表示添加到原文件中的内容,而减号 ( - ) 表示删除或更改的行。

根据差异创建patch文件

现在我们有了两份代码的差异部分了,我们可以根据差异生成补丁文件。patch 文件的生成很简单,只需要使用标准 Bash 重定向将 diff 命令的结果输出就行了:

$ diff -u tea.md tea-revised.md > tea.patch

该文件的内容与输出到终端的内容完全相同,我们可以使用 cat 或 vim 命令来查看这个文件。说个题外话,使用 Emacs 工具来查看的话,它会根据每行是被添加还是被减去来对每一行使用颜色区分,非常直观。

使用patch文件应用更改

当我生成好了补丁文件之后,我就可以将它发给你(QQ/微信,邮件,或者其它方式都行),你就可以将它应用到你的旧文件中。

这里我们需要使用 patch 命令应用补丁:

$ patch tea.md tea.patch

应用了补丁之后,你就得到了一个与我的版本相同的文件:

$ cat tea.md
Warm a teapot in the proving drawer of your oven.
Boil water.
Add tea leaves to a tea strainer.
Add strainer and water to teapot.
Steep for 6 minutes. Keep it warm with a tea cosy.
Pour tea into cup.
Optionally, add warm milk.

随着开发的进行,我们会进行多次代码增减,在这过程中我们可以多次生成补丁并应用,然后互相审核,一起为代码做贡献。

命令安装

在 Linux 和 macOS 系统上,已经默认拥有 diff 和 patch 命令。但在 Windows 系统上就需要自己安装了,一个简单的方法就是通过 Cygwin 来获得这两个命令。

如果你曾尝试通过邮件或微信来协作处理文件,并且发现自己试图描述需要进行更改的位置,那么 diff 和 patch 这两个工具非常适合你,可以省去很多沟通成本。

  • 原文来自:https://os.51cto.com/art/202112/696389.htm
  • 本文地址:https://www.linuxprobe.com/diff-patch.html编辑:圆蛋,审核员:逄增宝
  • Linux命令大全:https://www.linuxcool.com/

为您推荐一些与本文相关的文章:

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
曼联最新动态:报价米利唐,恩里克无意执教,卡塞米罗有望续约?

曼联最新动态:报价米利唐,恩里克无意执教,卡塞米罗有望续约?

夜白侃球
2026-02-09 19:39:00
著名演员谭凯卖掉北京房产、注销北京户口,回青岛开一家饺子馆

著名演员谭凯卖掉北京房产、注销北京户口,回青岛开一家饺子馆

阿雹娱乐
2026-01-22 14:20:50
中国企业斥资260亿收购美国巨头,此举令人解气

中国企业斥资260亿收购美国巨头,此举令人解气

汪镛的创业之路
2026-02-09 14:00:17
快讯!中国电信副总经理栾晓维突爆重大动况!

快讯!中国电信副总经理栾晓维突爆重大动况!

通信头条
2026-02-09 21:18:41
畸形儿风波后,阚清子首度表态,早产女婴夭折传闻终于真相大白

畸形儿风波后,阚清子首度表态,早产女婴夭折传闻终于真相大白

古事寻踪记
2026-02-09 07:12:57
北宋为何死活收不回燕云十六州?不是宋军太弱,是这6个死局无解

北宋为何死活收不回燕云十六州?不是宋军太弱,是这6个死局无解

老吴教育课堂
2026-02-09 17:42:50
最新计划!贝克汉姆将迎来第一个长孙,但不是布鲁克林的亲生血脉

最新计划!贝克汉姆将迎来第一个长孙,但不是布鲁克林的亲生血脉

喜欢历史的阿繁
2026-02-08 11:33:28
乌克兰重创俄罗斯特维尔航空导弹工厂!距莫斯科仅一百多公里

乌克兰重创俄罗斯特维尔航空导弹工厂!距莫斯科仅一百多公里

项鹏飞
2026-02-07 19:33:53
咸鸭蛋被关注!调查发现:糖尿病患者吃咸鸭蛋,或许会有这3变化

咸鸭蛋被关注!调查发现:糖尿病患者吃咸鸭蛋,或许会有这3变化

宝哥精彩赛事
2026-02-09 20:26:25
爆大冷!快船掀翻西部豪强:2连胜升西部第九,伦纳德爆砍41分

爆大冷!快船掀翻西部豪强:2连胜升西部第九,伦纳德爆砍41分

体坛小李
2026-02-09 07:13:57
《水浒传》中最大的谎言:“上二斤牛肉”,原来我们被骗了这么多年

《水浒传》中最大的谎言:“上二斤牛肉”,原来我们被骗了这么多年

诗词世界
2026-02-07 06:05:51
王楚钦4-2张本智和夺冠!后两局正手短破局太关键了!

王楚钦4-2张本智和夺冠!后两局正手短破局太关键了!

篮球资讯达人
2026-02-08 22:45:08
院士:白酒有益健康,北大:8%中国男性是问题饮酒者,危害严重

院士:白酒有益健康,北大:8%中国男性是问题饮酒者,危害严重

科海识贝sci
2026-02-08 12:18:29
伦纳德表达不满:以为过去表现不错,结果哈登哈祖巴茨都被交易

伦纳德表达不满:以为过去表现不错,结果哈登哈祖巴茨都被交易

爱体育
2026-02-08 23:15:37
轰29+10!和哈登合作真好,阿伦赛后动情发声,阿特金森也摊牌了

轰29+10!和哈登合作真好,阿伦赛后动情发声,阿特金森也摊牌了

篮球看比赛
2026-02-08 20:18:30
高市刚一选赢,马上就要求中国理解,张口就要去靖国神社“还愿”

高市刚一选赢,马上就要求中国理解,张口就要去靖国神社“还愿”

生活魔术专家
2026-02-09 13:31:14
现货白银涨幅扩大至5%

现货白银涨幅扩大至5%

财联社
2026-02-09 12:42:16
有高人预测:中国手握“两套房”的家庭,未来或出现3个结果

有高人预测:中国手握“两套房”的家庭,未来或出现3个结果

坠入二次元的海洋
2026-02-08 10:46:19
昔日网红品牌,被曝濒临破产!很多人爱吃,网友:太唏嘘了

昔日网红品牌,被曝濒临破产!很多人爱吃,网友:太唏嘘了

南方都市报
2026-02-09 20:26:35
中日铜牌战 蒯曼赢了! 张本美和接受采访时落泪

中日铜牌战 蒯曼赢了! 张本美和接受采访时落泪

看看新闻Knews
2026-02-08 23:47:07
2026-02-09 21:59:00
孙有匪 incentive-icons
孙有匪
科技
1595文章数 2008关注度
往期回顾 全部

科技要闻

实测|字节新模型带着音效和复杂运镜杀疯了

头条要闻

高市早苗表态:着手推动修宪

头条要闻

高市早苗表态:着手推动修宪

体育要闻

创中国冬奥最佳战绩!19岁速滑新星含泪向天拉勾

娱乐要闻

央视电影活动名场面!明星站位太讲究

财经要闻

沪深北交易所优化再融资 释放3个信号

汽车要闻

长安将搭钠电池 好比汽车要装柴油机?

态度原创

艺术
亲子
教育
旅游
手机

艺术要闻

柔和的抽象静物画,英国当代画家Sonia Barton

亲子要闻

有趣的3D打印机糖果食玩

教育要闻

高二英语分数卡在100分左右,刷了45套没变化,如何提分?

旅游要闻

江西南丰:“村宴”开席迎新春

手机要闻

三星在印度推Galaxy F70e 5G手机,配置与售价揭晓

无障碍浏览 进入关怀版