本文转载自: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. mysql数据库管理工具(navicat for mysql)

    Navicat Premium 是一个可多重连接的数据库管理工具,它可让你以单一程序同时连接到 MySQL.Oracle.PostgreSQL.SQLite 及 SQL Server 数据库,让管理不 ...

  2. js 展开&收缩 二种

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. [Python] SQLBuilder 演示样例代码

    用Python写一个SQLBuilder.Java版能够从 http://www.java2s.com/Code/Java/Database-SQL-JDBC/SQLBuilder.htm 看到. 附 ...

  4. OCP-1Z0-051-题目解析-第16题

    16. Evaluate the following query: SQL> SELECT promo_name q'{'s start date was }' promo_begin_date ...

  5. 循环时的dom操作

    <body> <div id="resText"></div> <div id="reshtml"></d ...

  6. RGB颜色空间alpha混合的方法

    http://blog.csdn.net/xhhjin/article/details/6444782http://blog.csdn.net/xhhjin/article/details/64454 ...

  7. apt-get update --> Bad header line (fresh install) Ign http://archive.ubuntu.com natty-security/multiverse Sources/DiffIndex W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/natty/Rele

    apt-get update --> Bad header line (fresh install) fresh natty install i386 desktop. I get this e ...

  8. EventListener中的handleEvent

    在研究代码时发现类似这样一段代码: function TEST() {} TEST.prototype = { init:function() { window.addEventListener('m ...

  9. mysql数据库常用语句系列

    mysql查询某个字段长度   一般查询语句:SELECT `lcontent` FROM `caiji_ym_liuyan` 查询数据: 有些时候需要查询某个字段的长度为多少时候才显示数据: SQL ...

  10. Frege-基于JVM的类Haskell纯函数式编程语言

    Frege是一门受Haskell语言启示而设计的纯函数式编程语言.Frege程序会被编译为Java,并执行于JVM上.它与Haskell是如此的类似.以至于有人称它为JVM上的Haskell.取Fre ...