git使用——rebase

1.git log先找到需要变基(rebase)的Hash ID的下一个ID(不是本身Hash值)

2.git rebase -i (Hash ID) 此时会出现两种情况

     1)工作区有变更尚未提交

$ git rebase -i 121f508bc4ac7044c1dda188fc595e7029613f22
不能变基:您有未暂存的变更。
而且您的索引中包含未提交的变更。
请提交或贮藏修改。

遇到这种情况需要将变更缓存,输入git stash 存储变更后再进行第二步操作

    2)工作区无变更

此时直接往下执行:

pick f60514c5 a
pick e52ec2e0 b
pick b2ee5bd4 c
pick 1e3b1ed8 d
pick ac231a7a e
pick 1ddd77c2 f
pick de41e172 g
pick bab63064 h
pick f898eacd i

# 变基 b0279a0c..f898eacd 到 b0279a0c(9 个提交)
#
# 命令:
# p, pick = 使用提交
# r, reword = 使用提交,但修改提交说明
# e, edit = 使用提交,但停止以便进行提交修补
# s, squash = 使用提交,但和前一个版本融合
# f, fixup = 类似于 "squash",但丢弃提交说明日志
# x, exec = 使用 shell 运行命令(此行剩余部分)
# d, drop = 删除提交
#
# 这些行可以被重新排序;它们会被从上至下地执行。
#
# 如果您在这里删除一行,对应的提交将会丢失。
#
# 然而,如果您删除全部内容,变基操作将会终止。
#
# 注意空提交已被注释掉

 

3.根据提示,将pick改为适应需求的关键词即可

4.退出保存

5.输入 git stash pop 释放之前保存的缓存然后正常操作即可

补充:

若想要rebase的commit不相邻,可以把调整commit顺序。用上面举例,假如想让i commit向上提可以直接复制粘贴,如下效果:

pick f60514c5 a
pick e52ec2e0 b
pick b2ee5bd4 c
pick 1e3b1ed8 d
pick ac231a7a e
pick 1ddd77c2 f
pick de41e172 g

pick f898eacd i
pick bab63064 h

这样的话,hash ID为 f898eacd 的commit就提前了,然后再进行其他操作

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值