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

能否将一个项目的Commit迁移至另一个同类Bitbucket仓库项目?

当然有靠谱的方案,完全不用手动复制修改内容折腾!既然两个项目的文件层级完全一致,Git自带的补丁工具就能帮你轻松把第一个仓库的commit变更迁移到第二个仓库,我给你分享两种常用的方法:

方法一:用git format-patch迁移完整commit记录

这种方法能完整保留每个commit的提交信息、注释,适合迁移多个关联的commit:

  • 先切换到第一个项目的本地仓库,找到你要迁移的commit哈希(可以用git log查看)。
    • 如果是单个commit,执行:git format-patch -1 <你的commit哈希>,这会生成一个类似0001-xxx.patch的补丁文件,里面包含了该commit的所有变更和提交信息。
    • 如果是连续的多个commit(比如从commit X到commit Y的所有变更),执行:git format-patch <X的哈希>..<Y的哈希>,每个commit会对应一个独立的.patch文件。
  • 把生成的所有.patch文件复制到第二个项目的本地仓库目录下。
  • 切换到第二个项目的仓库,执行git am <补丁文件名>来应用单个补丁;如果是多个补丁,直接执行git am *.patch就能批量应用。
    • 如果遇到冲突,先手动解决文件里的冲突标记,然后执行git am --continue继续应用;要是想放弃整个操作,用git am --abort就行。
方法二:用git diff生成差异补丁快速应用

如果只需要迁移变更内容,不需要保留commit记录,这种方法更简洁:

  • 在第一个项目的本地仓库,生成目标commit与其父commit的差异文件:git diff <父commit哈希> <目标commit哈希> > feature-change.patch。你可以用git log --oneline找到目标commit的前一个commit哈希。
  • 把生成的feature-change.patch文件复制到第二个项目的本地仓库。
  • 切换到第二个项目的仓库,执行git apply feature-change.patch,就能把变更应用到当前工作区。
    • 如果出现冲突,解决冲突后,用git add把修改加入暂存区,再正常提交即可。

这两种方法都完美适配你“文件层级完全一致”的场景,比手动复制高效太多,还能避免遗漏修改。如果是多个关联的功能commit,优先用git format-patch;如果只是单个小修改,git diff更省事。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 08:27:37