Git rebase 用法说明

用法说明

功能:
在另外一个提交的上方重新应用提交,提交包括upstream-HEAD之间的所有提交,提交应用到HEAD上。

命令格式:

git rebase [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>]
	[<upstream> [<branch>]]
  • newbase :
    • 创建新提交的起始点,如果不指定,则为 upstream ,相当于开始应用提交前执行了 git reset --hard <upstream> (或者 <newbase>)
  • upstream:
    • 不指定,使用配置 branch.<name>.remote 和 branch.<name>.merge 中的值,如:

        branch.main.remote=origin
        branch.main.merge=refs/heads/main
      
    • 所有位于 <upstream>...HEAD 之间的提交都会被重新应用,故可以使用 git log <upstream>..HEAD 来确认将会被应用的提交有哪些

    	git log --oneline my-test...HEAD
    
  • branch:
    • 指定后会在开始应用提交前执行 git checkout <branch>
    • 不指定则在保留当前分支

简单总结

  1. git rebase :会将远程跟踪分支的提交重新应用到当前本地分支(newbase = upstream = 远程分支 )
  2. git rebase my-test main : 先切到分支 main,然后应用my-test…main之间的提交到HEAD(new-base=upstream=my-test, branch = main)

应用场景

–onto 移除提交

rebase 前:

E---F---G---H---I---J  topicA

执行命令:

git rebase --onto topicA~5 topicA~3 topicA
  • --onto topicA~5 会使得 reset 到提交 E
  • topicA~3 topicA 会选取提交H---I---J

结果:

 E---H'---I'---J'  topicA

F、G 被移除了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值