diff和patch 打补丁

news/2024/7/8 16:29:04 标签: diff, patch, vim, git, 补丁
在Linux环境下,有两个工具用来给project打补丁,即diffpatch

diff

         diff具有比较功能。可以使用man命令查看其使用方法。
   
  1. NAME
  2.        diff - compare files line by line
  3. SYNOPSIS
  4.        diff [OPTION]... FILES
常用选项:
          -r   是一个递归选项

-N 确保命令正确执行,文件不存在视为空

-u 使用统一格式


patch

        patch 用来打补丁
   
  1. NAME
  2. patch - apply a diff file to an original
  3. SYNOPSIS
  4. patch [options] [originalfile [patchfile]]
  5. but usually just
  6. patch -pnum <patchfile

  -pnum:
    -p0 根据补丁中完整路径查找要打补丁的文件
    -p1忽略第一层目录
    ……

简单的例子

源文件
   
  1. ./file1.c
  2. #include <stdio.h>
  3. int main()
  4. {
  5. printf("This is version 1!\n");
  6. return 0;
  7. }

新文件:
   
  1. ./file2.c
  2. #include <stdio.h>
  3. int main()
  4. {
  5. printf("This is version 2!\n");
  6. return 0;
  7. }

比较两个文件,生成patch
   
  1. $ diff -uN file1.c file2.c >> file.patch
打上补丁
   
  1. $ patch -p0 < file.patch
此时file1.c的内容变变成file2.c的内容


如果两个文件在不同目录,比如一个在remote,一个在local目录
   
  1. $ diff -uN Remote/file1.c Local/file2.c >> file.patch
  2. //在file.patch目录下
  3. $ patch -p0 < file.patch












    

http://www.niftyadmin.cn/n/1079664.html

相关文章

java中计时器的用法Timer和TimerTask的用法__java中利用Timer与TImerTask 计时器间隔执行任务...

经常我们都会有这样的需求&#xff0c;要固定的每隔一段时间执行某一个任务。比如:我们做一个缓存来减少与数据库的交互&#xff0c;而为了使缓存与数据库中的数据尽量达到同步&#xff0c;需要每个固定的一段时间去数据库中的数据是否有更新以达到与缓存的同步。这样的需求可以…

微信公众平台开发最佳实践

《微信公众平台开发最佳实践》共分10章&#xff0c;案例程序采用广泛流行的PHP、MySQL、XML、CSS、JavaScript、HTML5等程序语言及数据库实现。系统完整地介绍微信公众平台基础接口、自定义菜单、高级接口、微信支付、分享转发等所有相关技术&#xff0c;以生活类、娱乐类、企业…

sed和awk简介

什么是sed和awk sed和awk是Linux环境下数据的处理工具&#xff0c;可以完成对数据的增删改查的功能。sed处理时是以行尾单位的&#xff0c;awk处理数据时以字段为单位。sed 用法&#xff1a;sed 【选项】 【动作】 【文件】 以行为处理单位选项&#xff1a;-n&#xff1a;安静…

Unity内置shader 下载

Unity内置shader 4.3.1 版本的 其他版本可以自己修改名称 下载地址 http://download.unity3d.com/download_unity/builtin_shaders-4.3.1.zip转载于:https://www.cnblogs.com/fortunely/p/4472180.html

linux命令行下命令参数前的一横(-)和两横(--)的区别

原文转自&#xff1a;http://blog.csdn.net/songjinshi/article/details/6816776在解释这些区别之前我们先了解一下有关linux的背景知识&#xff0c;这个需要大家先认真看完就会对这些区别有更深入的了解&#xff0c;对linux也有更深的了解。 关于System V和BSD风格以及他们与L…

Ubuntu下sh *.sh使用==操作符执行报错

————《鸟哥的Linux私房菜——基础篇》学习笔记 ubuntu默认的sh是连接到dash&#xff0c;而我们写shell脚本时使用的时bash。bash和dash在一些方面是不兼容的。因此执行同一个脚本&#xff0c;两者结果不一样&#xff0c;可能用./*sh可以执行&#xff0c;而sh *.sh报错。 …

实践javascript美术馆的小案例,学习到的东西还是蛮多的,包括javascript编程中的预留退路、分离javascript、以及实现向后兼容等...

javascript美术馆&#xff08;改进2&#xff09; 一、javascript编程过程中的好习惯 1、实现预留退路 js被禁掉&#xff0c;图片也可以显示出来&#xff0c;href属性带有图片路径 <script src"js/showPic.js"></script><h1>Snapshots</h1>&…

Android开发工具配置大全

转载自&#xff1a; https://github.com/inferjay/AndroidDevTools http://www.androiddevtools.cn/ AndroidDevTools 收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范&#xff0c;免费的设计素材等。 欢迎大家推荐自己在Andr…