当你有两个结构相同的 Git 仓库,并且想在其中一个仓库的提交应用到另一个仓库时,有几种方法可以实现类似 cherry-pick 的效果:
方法一:使用补丁文件(推荐)
在源仓库生成补丁:
git format-patch -1 <commit-hash>
这会生成一个 .patch 文件
将补丁文件复制到目标仓库
在目标仓库应用补丁:
git am <patch-file>
方法二:直接使用远程引用
在目标仓库添加源仓库为远程:
git remote add source-repo <source-repo-url>
获取源仓库的提交:
git fetch source-repo
使用 cherry-pick 应用提交:
git cherry-pick <commit-hash>
方法三:使用 bundle 文件
在源仓库创建 bundle:
git bundle create changes.bundle <commit-hash>^..<commit-hash>
将 bundle 文件复制到目标仓库
在目标仓库从 bundle 获取提交:
git fetch changes.bundle <branch-name>:<local-branch-name>
然后可以 cherry-pick 或 merge 这个提交
注意事项
确保两个仓库的文件结构确实相同,否则可能会产生冲突
如果提交有依赖的其他提交,可能需要一并迁移
应用补丁时可能会遇到冲突,需要手动解决
本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work
尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。