1.git log 查看commit id,修改前为id1,修改后id2

2.根据id1到id2有几次提交来生成几个patch,否则的话会根据所有节点生成很多patch

比如:

commit id2

commit idx

commit id1

那么执行:git format-patch -2 id1 id2   会按照顺序生成两个patch,比如下:

0001-add-build-scripts.patch

0002-add-test-build-scripts.patch

3.先回退到id1 : git reset --hard id1

4.打patch时检查patch:

先检查patch文件:git apply --stat  patchname.patch
检查能否应用成功:git apply --check patchname.patch    (如果打不上,在这一步会报错,报错显示和git am patch是一样的,如果patch有顺序的话,检查第一个就可以)

5.打patch :git am patchname.patch

打patch时严格按照patch的顺序一个一个打

6.patch失败的话,采用 patch -pn < patchname.patch

pn表示跳过多少级目录,如果patch在当前目录下,直接用patch -pn < patchname.patch ,如果patch在上层目录下,则patch -p1 < ../patchname.patch

7.git diff 也可以打patch,使用:

  git diff commit_id1 commit_id2 > test.patch

  打补丁: git apply test.patch

备注,如果打补丁失败,要先把新增的文件删掉。

如果没有commitid,只是修改了文件,可以用git diff 后接改动文件来生成patch,如下:

(1)git diff test.java > test.patch # 生成补丁

然后切换到指定路径下,检查一下这个补丁,并把这个补丁打上。

(2)git apply --check  test.patch #测试补丁能否成功

(3)git apply test.patch # 打补丁

linux git patch 和patch以及git diff 命令的更多相关文章

  1. linux 比较两个文件夹不同 (diff命令, md5列表)

    比较文件夹diff,可以直接使用diff命令 [root@~]# diff -urNa dir1 dir2 -a Treat all files as text and compare them li ...

  2. GIT打补丁 - patch和diff应用

    一. 准备工作: [root@guangzhou gittest]# git br * master [root@guangzhou gittest]# git chk -b patch-test1 ...

  3. 关于git的打patch的功能

    UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过 Patch来提交代码的.作为最重要的开源项目之一,Linux ...

  4. 【Git】生成Patch和使用Patch

    1.生成Patch(俗称快照) 先来看看repo manifest 的用法 <1>cd /工作目录/项目目录/.repo/manifests <2>repo manifest ...

  5. 11 个 Linux 上最佳的图形化 Git 客户端

    Git是软件开发和若干其他版本控制任务免费和开源的分布式版本控制系统.它被设计用来以应付一切从小到非常大的项目,基于速度,效率和数据完整性. Linux用户主要通过命令行管理Git,不过,一些图形用户 ...

  6. diff命令和patch命令

    diff命令和patch命令 Linux就这个范儿 2.9.5 文件对比命令——diff diff命令搭建网站离不开数据库,在Linux系统上我们使用源码安装了MySQL服务器.不久我们发现 Goog ...

  7. 『现学现忘』Git基础 — 21、git diff命令

    目录 1.git diff 命令说明 2.比较工作区与暂存区中文件的差别 3.比较暂存区与本地库中文件的差别 4.总结git diff命令常见用法 5.总结 1.git diff 命令说明 在comm ...

  8. patch 打补丁,和diff 生成制作补丁

    一.diff 命令: diff命令就是比较两个文件的差异,然后生成差异文件,即补丁文件. 参数:diff --help获得,最常用的 1.-N --new-file 在比较时,如果没有就拿一个空的文件 ...

  9. Git在Windows环境下配置Diff以及Merge工具---DiffMerge

    参考出处:http://coding4streetcred.com/blog/post/Configure-DiffMerge-for-Your-Git-DiffTool主要转自:http://blo ...

随机推荐

  1. MYSQL 如何完全卸载数据库

    有时候MySQL不能完全卸载,这时候必须通过一些途径删除掉注册表和一些残余的文件,然后才能重新安装才可以成功! 1.控制面板——>所有控制面板项——>程序和功能,卸载mysql serve ...

  2. redis(一)--认识redis

    Redis官网对redis的定义是:“Redis is an open source, BSD licensed, advanced key-value cache and store”,可以看出,R ...

  3. CentOS7(linux) 通过服务名查询安装目录

    #ps aux|grep nginx root 1231 0.0 0.0 46336 956 ? Ss 04:21 0:00 nginx: master process /usr/sbin/nginx ...

  4. 一个生产可用的mysql参数文件my.cnf

    [client]#客户端选项设置#设置客户端和连接字符集default_character_set = utf8port = 3306socket = /opt/mysql-5.6.24/tmp/my ...

  5. Artistic Style 3.1 A Free, Fast, and Small Automatic Formatter for C, C++, C++/CLI, Objective‑C, C#, and Java Source Code

    Artistic Style - Index http://astyle.sourceforge.net/ Artistic Style 3.1 A Free, Fast, and Small Aut ...

  6. 2016年蓝桥杯省赛A组c++第3题(图论)

    /* 有一个含有10个格子的图形,现用0~9填充,连续的数不能填充在相邻的格子中(包括对角线相邻). 现每个数只能填写一次,问有多少种填充方法? 0111 1111 1110 (1表示有格子,0表示没 ...

  7. LeetCode 905 Sort Array By Parity 解题报告

    题目要求 Given an array A of non-negative integers, return an array consisting of all the even elements ...

  8. js中常用的offset client screen对象

    javascript中offsetWidth.clientWidth.width.scrollWidth.clientX.screenX.offsetX.pageX offsetWidth //返回元 ...

  9. oracle的undo表空间

    undo表空间是Oracle特有的概念.undo表空间中会自动分配undo段,这些undo段用来保存事务中的DML语句的undo信息,也就是来保存数据在被修改之前的值.在rollback,实例恢复(回 ...

  10. Code once, debug everywhere.

    1.通常语言调用一个函数会出exception的情况,在javascript里面返回的是undefined.等到程序运行不正常的时候,你看到数据结构的有些地方为什么是undefined,只能哭了. 2 ...