git 捆绑一系列提交

git bundle a range of commits

在 Github 上,我从一个名为 RepoBase 的存储库 fork 到一个名为 RepoForked 的私有存储库。然后,我在 RepoBase 上创建了一个本地分支 MyLocalBase 并对其进行了 5 次提交。

我现在想捆绑我在 MyLocalBase 分支中所做的最后 5 次提交,并在 RepoForked 分支中取消捆绑。我该怎么做?

自然的解决方案是添加一个遥控器并推送:

git remote add RepoForked ../path/to/repoForked
git checkout MyLocalBase 
git push RepoForked MyLocalBase 

但是,如果你必须使用 git bundle:

cd RepoBase
git bundle create file.bundle MyLocalBase

cd /path/to/RepoForked 
git remote add RepoBase /path/to/file.bundle
git fetch RepoBase
git checkout -b MyLocalBase RepoBase/MyLocalBase 

因此,您无需直接推送,而是从包中获取(它充当 git 存储库,但将自身呈现为一个文件)