本文转载自:http://blog.chinaunix.net/uid-28621021-id-3487102.html

git format-patch的使用

 

1.在dev1分支上,打出所有dev1分支在master分支基础上的patch

git format-patch master
结果为d1c1.patch ,d1c2.patch

2.在dev1分支上,打出所有dev1分支的所有patch

git format-patch –root dev1
结果为mc1.patch,d1c1.patch ,d1c2.patch

3.在dev2分支上,打出所有dev2分支在master分支基础上的patch

git format-patch master
结果为d2c1.patch ,d2c2.patch

4.在dev2分支上,打出所有dev2分支的所有patch

git format-patch –root dev2
结果为mc1.patch,mc2.patch,mc3.patch,d2c1.patch ,d2c2.patch

5.在dev2分支上,打出所有相对于dev1分支的所有patch

git format-patch –root dev1
结果为 mc2.patch,mc3.patch,d2c1.patch ,d2c2.patch

6.比较两个分支

git diff dev1 dev2

7.比较两个分支中单个文件的区别

git diff dev1 dev2 main.c

8.将所有的commit信息保存在文件中

git log > commit.txt
git log | grep “commit” -A3 >commit.txt 保存commit开始的3行
 
-An after , -Bn before, -Cn(前后n行)

9.将dev1的分支merge到dev2分支

在dev2分支下,git merge --commit dev1

10.找到dev2在master分支上的commitID

git merge-base dev2 master
会显示dev2和master两个分支的共同的commitID

撤消历史提交
1
git revert commit_ID
例子:提交历史如下
ss@ss:/work/test$ git log
commit 70869ac8cc36c05267aad41954f89d068d2d8142
Author: ss 
Date:   Thu Mar 21 20:12:58 2013 +0800

new a

commit 226e1a70d720f47d21d3664688d9dc34665ba84f
Author: ss 
Date:   Thu Mar 21 20:05:36 2013 +0800

commit c

commit ff45af7db705904bc49fc09679b2c384ce778d1a
Author: ss 
Date:   Thu Mar 21 20:05:23 2013 +0800

commit b

commit 76e846f8ee0106840767d5522c7d33d7f752527b      
Author: ss 
Date:   Thu Mar 21 20:05:08 2013 +0800

commit a

commit 8e7979f6617ae9fc6ae3666002bf17482bd10e28
Author: ss 
Date:   Wed Feb 20 20:06:09 2013 +0800

Iitial

如果我想撤消
commit 226e1a70d720f47d21d3664688d9dc34665ba84f
Author: ss 
Date:   Thu Mar 21 20:05:36 2013 +0800

commit c
这笔提交;则使用命令:git revert 226e1a70d720f47d21d3664688d9dc34665ba84f
效果如下:
commit 40f83cb1fa45702ec31bcdd4426580551edfae8e
Author: ss <ss.ss< span="">.com>
Date:   Thu Mar 21 20:13:07 2013 +0800

Revert "commit c"
    
    This reverts commit 226e1a70d720f47d21d3664688d9dc34665ba84f.
commit 70869ac8cc36c05267aad41954f89d068d2d8142
Author: ss 
Date:   Thu Mar 21 20:12:58 2013 +0800

new a

commit 226e1a70d720f47d21d3664688d9dc34665ba84f
Author: ss 
Date:   Thu Mar 21 20:05:36 2013 +0800

commit c

commit ff45af7db705904bc49fc09679b2c384ce778d1a
Author: ss 
Date:   Thu Mar 21 20:05:23 2013 +0800

commit b

这样在这一比提交的东西将会被撤销
2
若想撤消
commit 70869ac8cc36c05267aad41954f89d068d2d8142
Author: ss 
Date:   Thu Mar 21 20:12:58 2013 +0800

new a

commit 226e1a70d720f47d21d3664688d9dc34665ba84f
Author: ss 
Date:   Thu Mar 21 20:05:36 2013 +0800

commit c

commit ff45af7db705904bc49fc09679b2c384ce778d1a
Author: ss 
Date:   Thu Mar 21 20:05:23 2013 +0800

commit b

这三笔提交
可以用命令
git reset --hard 76e846f8ee0106840767d5522c7d33d7f752527b  这笔ID为commi a
git reset --soft 70869ac8cc36c05267aad41954f89d068d2d8142
git commit -m "cccc"

git format-patch的使用【转】的更多相关文章

  1. git diff 生成patch, git apply patch 打补丁方法说明,以及分支管理的简单操作。

    git diff 简易操作说明 先git log 查看commit ID, 记录你想要打的补丁的ID 比如说: git log commit 4ff35d800fa62123a28b7bda2a04e ...

  2. Git的Patch功能

    转自:http://www.cnblogs.com/y041039/articles/2411600.html UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因 ...

  3. git 生成patch 和打入patch

    转载:https://blog.csdn.net/liuhaomatou/article/details/54410361 平时我们在使用git 管理项目的时候,会遇到这样一种情况,那就是客户使用gi ...

  4. 如何使用git 生成patch 和打入patch【转】

    本文转载自:http://blog.csdn.net/liuhaomatou/article/details/54410361 平时我们在使用git 管理项目的时候,会遇到这样一种情况,那就是客户使用 ...

  5. 如何使用git 生成patch 和打入patch 标签: gitpatch【转】

    本文转载自:http://blog.csdn.net/liuhaomatou/article/details/54410361 平时我们在使用git 管理项目的时候,会遇到这样一种情况,那就是客户使用 ...

  6. git diff patch方法

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

  7. [Git] Use git add --patch for better commit history and mitigating bugs

    Let's split our changes into separate commits. We'll be able to check over our changes before stagin ...

  8. git diff patch

    如何生成patch:修改一个地方,然后git diff > xxx.patch 就会生成一个patch文件,这里的关键似乎是, 源文件的某个模块的版本要和线上发布的最新版本要一致,这样patch ...

  9. git 生成patch和打patch

    有这样的 目录层次 x/xx/xxx/xxx/ttt.c而 我的 当前位置 是在 x/下 ,执行git diff> test.patch 在test.patch补丁文件里的路径信息是这样的:- ...

  10. git 生成patch和应用patch【转】

    本文转载自:http://www.jianshu.com/p/814fb6606734 1.在git源码目录下执行 1.1.两个commit间的修改(包含两个commit) git format-pa ...

随机推荐

  1. oracle如何获得新插入记录的id

    .对于提交(最后一次操作commit了)的话可以查询那个提交段 SELECT 列名1,列名2…… FROM 表名 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAX ...

  2. Geographical distance

    Introduction Calculating the distance between geographical coordinates is based on some level of abs ...

  3. struts2中迭代的使用方法

    struts2  Html代码   <s:iterator value="resultList" id="user" status="st&qu ...

  4. spring Multiple MongoTemplate

    <!-- 数据环境配置 --> <mongo:repositories base-package="com.my9yu.manager.module.server.repo ...

  5. FiddlerScript学习一:改动Request或Response

    前两天因项目须要,简单看了一下FiddlerScript,功能挺强的.今天有时间细致看一下,做个笔记. 改动Request或Response 改动Request和Response要在FiddlerSc ...

  6. WPF 基础到企业应用系列5——WPF千年轮回 续前缘

    一.摘要 首先非常高兴这个系列能得到大家的关注和支持,前端时间身体状况不适,所以暂停了更新,对此表示非常抱歉,以后会逐渐加快进度.只是因为这是一个非常长的系列,我也想把它写好,所以以后也会慢慢来,在这 ...

  7. vuex 中关于 mapState 的作用

    辅助函数 Vuex 除了提供我们 Store 对象外,还对外提供了一系列的辅助函数,方便我们在代码中使用 Vuex,提供了操作 store 的各种属性的一系列语法糖,下面我们来一起看一下: mapSt ...

  8. jmeter之怎样减负-实现稳定超高并发測试(性能调优)

    新浪围脖>@o蜗牛快跑o    在測试过程中,刚開始学习的人(也包含早期的我),使用工具不当,加入众多监控组件,很想看到实时报告.跑不了一会,jmeter就卡死甚至oom.仅仅得重新启动.之前的 ...

  9. nginx源代码分析--监听套接字的创建 套接字的监听 HTTP请求创建连接

    作为一个webserver,那么肯定是有监听套接字的,这个监听套接字是用于接收HTTP请求的,这个监听套接字的创建是依据配置文件的内容来创建的,在nginx.conf文件里有多少个地址就须要创建多少个 ...

  10. Ubuntu12安装RobotFramework

    安装Python Ubuntu默认已安装 安装pip wget https://bootstrap.pypa.io/get-pip.py python get-pip.pysudo apt-get i ...