zoukankan      html  css  js  c++  java
  • git patch

     -p 指定目录级别(从路径全称中除去几层目录) 

    如,如果补丁文件包含路径名称 /curds/whey/src/blurfl/blurfl.c,那么:

      -p 0 使用完整路径名   
      -p 1 除去前导斜杠,留下 curds/whey/src/blurfl/blurfl.c。   
      -p 4 除去前导斜杠和前三个目录,留下 blurfl/blurfl.c
     
     -d Directory ---打补丁前,更改当前目录到指定目录 
     
    patch -N 表示严格指定应用补丁
    -N  --forward  Ignore patches that appear to be reversed or already applied.
     
    patch -R 表示严格指定还原补丁
    -R  --reverse  Assume patches were created with old and new files swapped.
     
    【已解决】打patch补丁时出错:Reversed (or previously applied) patch detected! Assume -R? [n]
     
    【该提示出现的原因】
         表示此处之前已经打过一次补丁,所以此处再次打补丁,就会有该提示。
     
    【此处目标】
         希望可以忽略次错误,不在重复打补丁,继续往下执行。
          n=no=表示不R=不reverse?
    patch -R 表示撤回打补丁,还原内容
    例如:
    现有基础内核版本2.6.21,想转成2.6.21.7内核stable版本,应该怎么办?
       a) 去http://www.kernel.org/pub/linux/kernel/v2.6/下载patch-2.6.21.7;
       b) Linux shell下面,cd到2.6.21内核源文件根目录(linux-2.6.21),将patch-2.6.21.7也放在本目
          录(命令执行的当前止录),执行patch命令::patch -p1 < patch-2.6.21.7
          (p1的意思是忽略patch文件(即diff文件)内容中的第一个路径)
       c) 打完补丁后,即变成了2.6.21.7的内核了,如果想回退至2.6.21基础版本,执行如下命令即可:
          patch -R -p1 < patch-2.6.21.7
          (-R的参数意思表示回退这个patch)
    【结果】
         选择 n 以后,会出现
     
    y=yes=继续应用,打patch;
     
    n=no=不打patch
     
    e=edit=修改patch?
     
    v=view=查看patch?
     
    a=accept all y=接受所有修改?
     
    【此处目标】
         选择y,打补丁。
     
    【遗留】
     使用先n后y的逻辑打补丁,基本上可以解决问题,但是会出现了“Hunk #1 FAILED at 1.”之类的现象 。
  • 相关阅读:
    DAS,NAS,SAN在数据库存储上的应用
    ASP.NET4.5Web API及非同步程序开发系列3
    WCFRESTFul服务搭建及实现增删改查
    Workflow:自定义工作流 之 模型选择
    结构变量作为方法的参数调用
    C语言复习笔记-17种小算法-解决实际问题
    构建RESTful风格的WCF服务
    进程状态转换、CPU调度算法
    Excel 开发概述
    jQuery 1.10.2 and 2.0.3 Released
  • 原文地址:https://www.cnblogs.com/black-mamba/p/4423458.html
Copyright © 2011-2022 走看看