本文转载自:https://www.cnblogs.com/yandufeng/p/5580765.html

1. git cherry-pick

作用:从一个branch上选择一个commit,添加该commit到另一个branch上。

  1. 切换到你想添加commit的分支上。

git checkout master

  2. 执行下面的代码

  

git cherry-pick <commit-hash>

2. git rebase

作用:git rebase命令是一个自动化的cherry-pick命令, 它会添加一个branch上的所有commit到另一个branch上(找到一个branch上的所有commit,然后按照顺序,一个一个的cherry-pick他们到另一个branch上)。

原理:

先寻找到两个branch的共同祖先(你所在的branch和你rebase的branch),得到你所在branch的所有commit,保存这些不同到临时文件,然后重置现在的branch到你想要rebase的commit,然后重新添加每一次的改变到现在的分支。执行如下命令:

1. git checkout experiment

2. git rebase master

然后切换到master分支,做一下合并。

1. git checkout master

2. git merge experiment

3. git revert

作用:git revert命令是git cherry-pick命令的相反命令。它会创建一个新的commit,主要用来撤销操作。

最新文章

  1. 软件测试第三次作业——7.使用下面方法printPrimes()完成后面的问题(a)~(f)
  2. 将代码托管到OSChina服务器上
  3. Hp自学整理html
  4. Trace-跟踪高消耗的语句需添加哪些事件
  5. spring编程式刷新/重新加载applicationcontext/dispatchservlet(正确版)
  6. 如何处理PHP和MYSQL的并发以及优化
  7. docker 数据共享,数据复制
  8. 为duilib的MenuDemo增加消息响应,优化代码和显示效果
  9. android自定义控件之滚动广告条
  10. bzoj1036 zjoi2008 树的统计 count
  11. POJ3422 Kaka&amp;#39;s Matrix Travels 【最大费用最大流】
  12. zoj 3547 The Boss on Mars
  13. 经典算法题每日演练——第十六题 Kruskal算法
  14. js判断操作系统windows,ios,android(笔记)
  15. 正则表达式中引用shell变量
  16. php hook编程机制
  17. Linux 小知识翻译 - 「Unix」和「兼容Unix的OS」
  18. day 0308 编码的进阶 文件操作
  19. Tensorflow安装记录
  20. AngularJS自定义Directive不一定返回对象

热门文章

  1. vue搭建环境并创建项目
  2. 从caffemodel里面导出参数
  3. linux常用系统工作命令
  4. c++ 常用的数据结构
  5. 【Hbase学习之二】Hbase 搭建
  6. 【Hive学习之七】Hive 运行方式&amp;权限管理
  7. python XML文件解析:用ElementTree解析XML
  8. いっしょ / Be Together (暴力枚举)
  9. Android4.0 主线程不能访问网络异常解决办法
  10. &lt;转&gt;jmeter(十六)配置元件之计数器