【问题标题】:Git: Import commits from a repo to another repoGit:将提交从一个仓库导入另一个仓库
【发布时间】:2013-10-03 10:55:38
【问题描述】:

我为一个项目创建了一个大的Git 存储库,我为该项目创建了一个插件,该插件也是带有Git 的源控制器。最近我将插件的文件夹复制到主项目文件夹中。现在我有一个由Git 控制的项目文件夹源代码和同样由Git 控制的插件文件夹。我的问题是,有没有办法将插件存储库中的提交导入到主存储库,这样我就可以摆脱插件的.git 文件夹?

【问题讨论】:

  • 部分还是全部?存储库有共同的祖先还是完全独立?
  • 插件应该是在分支中开发的。有趣的问题。考虑到 git 有多么强大,大概是有答案的。
  • 他可以简单地将整个插件仓库导出为补丁,然后将它们应用到项目的仓库中。
  • @Aaron Digulla 所有这些。存储库没有共同的祖先,它们是完全独立的。
  • @Vorac 我同意,但我不知道插件会包含在主项目中,这就是为什么会出现这种情况。

标签: git


【解决方案1】:

在项目文件夹中打开一个命令窗口。

确保您在分支上。例如git checkout -b plugin-history

将插件文件夹添加为远程:git remote add plugin ../path/to/plugin/repo

从新远程获取哈希值:git fetch plugin

从远程分支批量挑选所有插件历史记录:

git cherry-pick firstSha1^..mostRecentSha1

(这里有更多关于挑选多个提交的说明:How to cherry-pick multiple commits)

然后,您应该将所有历史记录作为插件历史分支上的新提交。

【讨论】:

  • 在git remote add plugin ... 之后你还需要git fetch plugin 否则哈希不会在你的本地存储库中。
  • @peschü 评论可能会被删除
  • 如果是一次性的,可以简化为git fetch ../path/to/plugin/repo,不需要git remote add,
猜你喜欢
  • 1970-01-01
  • 2013-09-28
  • 2017-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-09-09
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多