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 .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基础(常用命令)介绍

    版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 关于版本控制分为三种:本地版本控制系统,如rcs:集中化的版本控制系统,如CVS.SVN:分布式版本控制系统,如Git. Gi ...

  2. GIT常用基础命令总结

    三个配置文件 /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置.若使用 git config 时用--system 选项,读写的就是这个文件. ~/.gitconfig 文件:用户 ...

  3. patch文件介绍和生成方法

    Git 打补丁-- patch 和 diff 的使用(详细) git diff和diff产生的文件简介 git patch制作相关简介 git format-patch 用法 如果要修改的patch当 ...

  4. git原理浅析及命令介绍

    状态描写叙述 请记住,工作文件夹以下的全部文件都不外乎这两种状态:已跟踪或未跟踪.已跟踪的文件是指本来就被纳入版本号控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新.已 ...

  5. Linux下安装Git、git命令介绍

    前言 环境:centos7.9 git version 1.8.3.1 Git官网 https://git-scm.com/ 安装Git [root@git ~]# yum install git # ...

  6. Git系列之git log高级命令

    原文地址 使用任何版本控制工具的目的都在于记录你代码的变化.这可以给予你查看项目历史的能力,去发现谁做出了贡献,弄清楚何时产生了bug,回滚到错误的修改.但是,如果你无法定位,获取这些历史记录将变得毫 ...

  7. git 提交代码命令_提交代码:git push 命令的四种形式

    Git是一种分布式版本控制系统,可以高效地处理项目的版本管理.若对Git的基本使用还不太了解,可以先看一下下面的文章. Git 常用命令 使用Git的工作流程:修改.暂存.提交.推送 Git操作:在多 ...

  8. git版本管理工具用法介绍

     1. 概要 Git 是 Linux 发明者 Linus 开发的一款新时代的版本控制系统,对于软件开发领域来说版本控制是最重要的一环,而 Git 毫无疑问是当下最流行.最好用的版本控制系统. 2. ...

  9. 使用 patch 命令打补丁

    之前的这篇文章 git 导出差异 diff 文件 写了导出 diff .patch 文件. 拿到 patch 文件,用 patch 命令可以快速的把修改内容合入,合入后在 git 上是已修改的状态,如 ...

  10. 2021 从零开始学Git【新版本Git - 8000字详细介绍】

    我写的这篇文章,主要是记录自己的学习过程,也希望帮助读者少踩坑(比如不同版本可能命令不兼容等).本文面向git零基础初学者,建议读者按照文中命令自己全部操作一遍(注意运行环境). 我的运行环境:win ...

最新文章

  1. 数据结构笔记--二叉查找树概述以及java代码实现
  2. 我亲手调教的AI,竟然开始歧视我了!
  3. 国内有没有能媲美Jira的测试管理工具?我们找国内产品来测评一下
  4. 基于英飞凌AURIX的平衡单车组逐飞BLDC项目开源
  5. VC++ 实现自定义消息
  6. nodejs实现的简单接口
  7. linux xfs文件误删除恢复_linux系统文件误删除恢复
  8. 【渝粤教育】电大中专常见病药物治疗作业 题库
  9. 透彻解析!字节跳动Android实习面试凉凉经,年薪超过80万!
  10. loaded the ViewController nib but the view outlet was not set. 处理方式
  11. 1. 安装docker
  12. error_reporting()函数
  13. Polygons HDU - 1632 (半平面交)
  14. 烂泥:学习ssh之ssh密钥随身携带
  15. [转]asp.net中打印ReportViewer报表
  16. 信息系统项目管理师历年试题分析与解答(android版)
  17. 电力线载波 Prime PLC 通讯技术简介
  18. NATAPP内网穿透使用
  19. 基于 redis 的单点登录原理
  20. FastDFS原理系列文章

热门文章

  1. Mark- 新的开始
  2. 快速养成一个好习惯?特别是小孩,培养一个习惯需要多长时间
  3. 科技复原,3000多前年的木乃伊「发声」了
  4. 目前最为出色的Wii模拟器,可以在电脑上运行绝大多数Wii游戏,对低端配置完美支持,绝对的神器
  5. r 语言计算欧氏距离_R语言实现46种距离算法
  6. Java开发必知Linux命令
  7. 学期博客:学习进度条
  8. 高级筛选英语或计算机分数大于85,WPS:如何在WPS中高级筛选分析学生成绩?
  9. 仿微软Video Indexer——视频断点播放与智能解析时间线的前端可视化实现
  10. 面试题之消息中间件(MQ与RabbitMQ)