Git - rebase

https://ruby-china.org/topics/22325

这是一篇翻译文档(SL:https://help.github.com/articles/about-git-rebase/),同时参杂了部分自己的见解

说在开讲前 
这应该算是Git的高级功能了,为什么这么讲?大家回忆下自己日常使用Git的时候最常用的是哪些命令(branch, checkout, pull, add, push ... ...)。是的,我们可以就用这些常用命令就能完成我们想要做的事情,但是当你想要把你已经做了的事情做得更漂亮的时候,你不得不寻找新的出路。那么对于Git来讲,rebase就是这样一个工具。

Command: git rebase
允许你对历史提交进行一系列的操作,排序、编辑、整合等。这是个很有必要的功能,为什么?
在你的工作目录下轻轻的敲下git log,仔细看看你的提交记录,你应该会明白。
注意: 有一点要注意,如果你已经把修改提交到了远程目录,并且不确定是不是你的partner已经在使用你的提交的时候,请不要轻易对这些提交进行rebase的操作,这会带来不必要的麻烦,为什么?(试试便知道)

如上述,git rebase允许你对历史提交进行操作,但是究竟是哪些历史提交呢?我们需要找到一个历史时间点,两种方式可以帮我们找到这个时间点。
一、相对于一个分支
我们知道除了master分支,其余的分支必然都会有一个源分支,也就是说当前分支必然存在一个Birth Time。

二、相对于一次提交
这个应该更好理解了,任何一次提交也必然会存在一个Birth Time。

在Rebasing的时候可用命令
pick
意思是这次提交会保留,对于多行pick,你可以对他们进行各种排序 as you like,也可以删除某一行。那么这些操作都会最终体现到你的提交历史记录中。
reword
在pick的基础上,多给了你一次重新编辑commit msg的机会。
edit
将会把这次提交重新放到你面前,然后任你宰割。客官你想干什么?
squash
将会把本次提交和上一次提交整合,同时你将有机会重新编辑commit msg。
fixup
跟squash唯一的区别是剥夺了你重新编辑commit msg的机会(当小妾不是滋味)。
exec
允许你对这次提交执行任何的shell command(尼玛,太强大了,没用过)。

PS:
欢迎各路大神指点!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值