git format-patch的使用【转】

本文转载自: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"

转载于:https://www.cnblogs.com/zzb-Dream-90Time/p/6728034.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
git format-patch是一个用于生成补丁文件的命令。相对于git diff,git format-patch更便于操作,并且生成的补丁文件可以使用git am命令进行应用。\[1\] 要使用git format-patch命令,可以按照以下格式输入命令: git format-patch <commitHash> -n -o <outputDirectory> 其中,<commitHash>是指定某次提交的哈希值,-n表示生成该提交之前的所有提交的补丁文件,-o指定输出的目录。例如,如果要在桌面上创建某次提交之前的n次提交的.patch文件,可以使用以下命令: git format-patch <commitHash> -n -o C:/Users/Administrator/Desktop \[2\] 生成的补丁文件可以包含文件更改的内容以及相应的提交记录信息。.diff文件只记录文件更改的内容,不带有commit记录信息,多个commit可以合并成一个diff文件。.patch文件则带有记录文件更改的内容,也带有commit记录信息,每个commit对应一个patch文件。\[3\] 总结起来,git format-patch是一个方便生成补丁文件的命令,可以使用git am命令应用这些补丁文件。通过指定特定的提交哈希值和其他选项,可以生成包含文件更改内容和提交记录信息的.patch文件。 #### 引用[.reference_title] - *1* [git format-patch 用法【】](https://blog.csdn.net/zzb2760715357/article/details/125731236)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [git format-patch/diff](https://blog.csdn.net/kingBook928/article/details/124763347)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值