当前栏目:老婆一次刺激的4p经历

51CTO社区编辑添盟指南,迎接关注!

 

行家益,吾是良许。

之前吾在公司上班的时候,必要频繁跟外国同事一首协同开发(之前在外企上班)。原由是异域配相符,以是疏导几乎通盘是议定邮件。

吾们有行使 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  & -1,7 +1,7 &  +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 这两个工具专门正当你,能够省往许众疏导成本。

【编辑保举】

鸿蒙官方战略配相符共建——HarmonyOS技术社区 Linux ‘网络配置’ 和 ‘故障倾轧’ 命令总结 不要 locate 命令,Linux plocate 才是更益的选择 HDF驱动框架探路:Linux总线机制imx6ull驱动sr501红张扬感器 适用生产环境的实战Linux企业级平时做事初级运维课程(2020崭新) Linux 5.17 将为 Alder Lake 挑供更益的睿频性能
浏览:

友情链接

Powered by 老婆一次刺激的4p经历-精品18免费视频在线观看手机官网-免 @2018 RSS地图 HTML地图

Copyright 站群 © 2013-2021 365建站器 版权所有