You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将BitBucket的Git仓库A多提交合并为单个提交推送到CodeCommit仓库B?

如何将Git仓库A的多次提交合并为单个提交推送到仓库B

方法一:用交互式变基合并提交

  • 先拉取仓库A的最新代码到本地开发分支:
    git checkout <你的开发分支名>
    git pull origin <你的开发分支名>
    
  • 找到要合并的提交起始点,比如合并最近3次提交,或者指定某个提交哈希:
    # 合并最近N次提交,把N换成实际数量
    git rebase -i HEAD~N
    # 或者从某个特定提交开始合并,把<起始提交哈希>换成实际哈希值
    git rebase -i <起始提交哈希>^
    
  • 弹出编辑器后,把第一个提交以外的pick改成squash(或简写s),保存退出。之后会让你编辑新的提交信息,把原来的多次提交信息整合或者写个清晰的描述就行。
  • 如果还没把仓库B加成本地远程,先添加:
    git remote add repo-b <仓库B的CodeCommit地址>
    
  • 最后把合并后的提交推去仓库B的目标分支:
    git push repo-b <你的开发分支名>:<仓库B的目标分支名>
    

    提示:要是仓库B的目标分支没人改动过,直接推就行;如果有冲突,得先拉取B的代码处理冲突再推,但按你的场景,应该不会有这情况。

方法二:用重置+重新提交的方式

  • 同样先拉取仓库A的最新代码:
    git checkout <你的开发分支名>
    git pull origin <你的开发分支名>
    
  • 用--soft参数重置到起始提交,这样工作区的修改会保留:
    git reset --soft <起始提交哈希>
    
  • 此时所有修改都在暂存区,直接提交成一个新的提交:
    git commit -m "合并提交:[这里写你的功能/变更描述]"
    
  • 推送到仓库B:
    git push repo-b <你的开发分支名>:<仓库B的目标分支名>
    

要注意的点

  • 别在公共分支上搞变基或重置,只在你自己的开发分支操作,不然会搞乱别人的代码。
  • 推送前一定要确认测试、进度都搞定了,毕竟推去B之后,原来的多次提交就合并成一个了,没法再拆分。
  • 要是仓库B的分支是受保护的,得确保你有推送权限,符合仓库的规则。

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:01:54