【Git入门之十】Rebase操作

原创 2013年10月05日 14:18:01

原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309627


Rebase,衍合?变基?唉,我也不知道要怎么翻译合适。。。变基怪怪的,我擦勒,你才变基呢。。。


1.Rebase提交

rebase命令允许你编辑你的提交历史,比如你可以把多个提交(commit)联合成一个,可以对它重新排序,跳掉某个提交或者编辑提交信息。这是非常有用的,当你要再推送到远程仓库之前要想重新编辑提交信息。以下举个例子把多个提交联合成一个。

  1. #做一些无聊的修改和提交  
  2. $ echo "test_rebase1" > jackydata01  
  3. $ git commit -a -m "test_rebase1"  
  4. [master 128a2f5] test_rebase1  
  5.  1 file changed, 1 insertion(+), 1 deletion(-)  
  6.   
  7. $ echo "test_rebase2" > jackydata01  
  8. $ git commit -a -m "test_rebase2"  
  9. [master 5ae88f5] test_rebase2  
  10.  1 file changed, 1 insertion(+), 1 deletion(-)  
  11.   
  12. $ echo "test_rebase3" > jackydata01  
  13. $ git commit -a -m "test_rebase3"  
  14. [master 37be873] test_rebase3  
  15.  1 file changed, 1 insertion(+), 1 deletion(-)  
  16.   
  17. $ echo "test_rebase4" > jackydata01  
  18. $ git commit -a -m "test_rebase4"  
  19. [master 7dff3e4] test_rebase4  
  20.  1 file changed, 1 insertion(+), 1 deletion(-)  
  21.   
  22. $ echo "test_rebase5" > jackydata01  
  23. $ git commit -a -m "test_rebase5"  
  24. [master 897fa79] test_rebase5  
  25.  1 file changed, 1 insertion(+), 1 deletion(-)  
看一下log。

  1. $ git log --pretty=oneline  
  2. 897fa79def2cf256b7f14d0ec0fcb67e8f61a814 test_rebase5  
  3. 7dff3e4ad7416f0370b4579393a0c8a8fc02efbd test_rebase4  
  4. 37be873b514afd9d8f6536cd893eadc3e32b4966 test_rebase3  
  5. 5ae88f5a0454066d820f6c1687b6d01f59f39dbd test_rebase2  
  6. 128a2f5cdb325bcbdb26b35741fad2a2fba49832 test_rebase1  
  7. ...还有很多  
利用《git rebase》把最后5个(如上)提交联合为1个。

  1. git rebase -i HEAD~5  
这个时候会打开Vim,这款神器我就不多说了,爱的多,恨的也不少,在Ubuntu上用过,自己不熟练所以感觉效率不高。Vim的常用命令自己google吧。



2.Rebase分支

对多个分支进行rebase操作,rebase命令为一个分支的更改生成一个补丁,然后把这个补丁应用到另外一个分支上,那么最后的源代码和merge是一样的,使用这种方式进行分支的合并更为合理。

  1. #创建并跳转到分支br  
  2. $ git branch br  
  3.   
  4. $ git checkout br  
  5. Switched to branch 'br'  
  6.   
  7. #修改br分支中的Jackydata01  
  8. $ echo "this wiil be rebase to master" >jackydata01  
  9.   
  10. #提交br分支中的修改  
  11. $ git  commit -a -m "rebase to master"  
  12. [br 5c2a431] rebase to master  
  13.  1 file changed, 1 insertion(+), 1 deletion(-)  
  14.   
  15. #跳转到master分支  
  16. $ git checkout master  
  17. Switched to branch 'master'  
  18. Your branch is ahead of 'origin/master' by 1 commit.  
  19.   (use "git push" to publish your local commits)  
  20.   
  21. #使用rebase把br的改变应用到master  
  22. $ git rebase br  
  23. First, rewinding head to replay your work on top of it...  
  24. Fast-forwarded master to br.  
  25.   
  26. #显示master中jackydata01的内容  
  27. $ cat jackydata01  
  28. this wiil be rebase to master  
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jackyvincefu/article/details/12309627

使用python操作Oracle

Python作为一门易学易用且不失强大的语言, 国内外不乏用Python开发的从桌面系统到复杂大型系统的例子。但作为脚本语言中的一位著名代表,Python不仅可以用来取代Java、C++等系统 语言来开发复杂的大型系统,也可以被当作一种辅助工具用来做一些日常工作中的琐碎的事情,比如备份、生成测试数据、日志分析等等。本文将通过一些简单的例 子来演示如何使用Python来访问Oracle进行基本操作。
  • 2016年07月09日 09:03

Git Rebase 操作的分析与整理

原文链接:http://www.jianshu.com/p/0c9adba41313 Git 提交步骤 图例中,有主干 master,支线分支 branch。 ...
  • tq384998430
  • tq384998430
  • 2017-08-31 14:21:01
  • 159

git rebase 使用详解

rebase 图示 merge rebase 总结rebase本地两个分支 一个我的分支 test 一个主分支 master 现在我修改的部分要合并到 master 上,可以有两种选择 merge ...
  • sambrown123
  • sambrown123
  • 2015-03-07 22:42:33
  • 12624

Git rebase 简明用法

不知道为什么上网查的Git rebase 用法都这么
  • herbert5069
  • herbert5069
  • 2014-04-20 23:20:29
  • 12398

git rebase简介(基本篇)

原文: http://gitbook.liuhui998.com/4_2.html 一、基本 git rebase用于把一个分支的修改合并到当前分支。 假设你现在基于远程分支"origin",创建一...
  • hudashi
  • hudashi
  • 2012-06-14 22:09:19
  • 250499

git merge 和 git rebase 小结

git merge是用来合并两个分支的。 git merge b       # 将b分支合并到当前分支 同样 git rebase b,也是把 b分支合并到当前分支 ----...
  • wh_19910525
  • wh_19910525
  • 2012-05-10 16:31:04
  • 184641

git rebase 使用

转自: http://blog.chinaunix.net/uid-26952464-id-3352144.html Git Community Book 中文版书上,摘录如下:   一、基本...
  • WitsMakeMen
  • WitsMakeMen
  • 2014-03-31 13:13:41
  • 16309

【Git入门之十】Rebase操作

Rebase,衍合?变基?唉,我也不知道要怎么翻译合适。。。变基怪怪的,我擦勒,你才变基呢。。。 1.Rebase提交 rebase命令允许你编辑你的提交历史,比如你可以把多个提交(commi...
  • jackyvincefu
  • jackyvincefu
  • 2013-10-05 14:18:01
  • 4460

git merge 和 git rebase 区别

git
  • qq_36633514
  • qq_36633514
  • 2017-12-07 10:46:05
  • 11

Git-rebase 黑魔法之打造完美的线性历史

这不是一篇博客,而是一篇黑魔法教习大全 写在前面 到现在,相信大家都已经能够使用 Git 做日常的项目管理了,今天给大家介绍的是 Git 的黑魔法 rebase 命令。 rebase 黑...
  • qq_32452623
  • qq_32452623
  • 2018-03-06 16:11:56
  • 66
收藏助手
不良信息举报
您举报文章:【Git入门之十】Rebase操作
举报原因:
原因补充:

(最多只允许输入30个字)