git - 将文件从一个 Git 存储库推送到另一个

标签 git repository

我有2个结构基本相同的Git仓库,但是仓库B只有仓库A的部分内容。

存储库 A 有更新的提交,我需要将其推送到 B(但只有必要的文件)。

到目前为止,我已经将存储库 git clone 到我的本地工作站。我应该如何用存储库 A 中的文件替换存储库 B 中的必要文​​件?

我天真的尝试是 git mv/A/source/*/B/source/ 结果是:

fatal: /B/source/: '/B/source/' is outside repository

由于我是 git 的新手,所以我不是 100% 确定我应该努力实现什么。我将尝试解释上下文:我们在存储库 A 中进行了积极的开发。存储库 B 目前供第三方访问部分内容(他们只需要部分内容)。存储库 A 的版本为 1.6,B 的版本为 1.4。所以我的目标是将必要的新内容推送到 B。我猜这会是将在 1.5 和 1.6 期间对 A 所做的提交提交给 B?

最佳答案

我认为最可靠的方法是转移实际的提交本身。使用 git format-patchA pull 不在 B 上的提交,反之亦然,并将它们写到 .patch 文件。

然后,在另一个 repo 中,使用 git apply.patch 文件提交应用到该 repo。如果存在冲突,您将有机会解决它们。

这与“cherry-picking”提交基本相同,但跨存储库而不是跨分支。

(如果你愿意,你也可以使用 git am 而不是 git apply,只是有点不同。)

关于git - 将文件从一个 Git 存储库推送到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32504741/

相关文章:

unit-testing - 如何为存储库更新方法编写单元测试?

git - 找不到 git 更新后 Hook 中的 Bash 命令

ruby-on-rails - Capistrano 和 Rails 部署,无法从 ubuntu 服务器访问 bitbucket 存储库

git - git :南瓜是做什么的?以及为什么选择较早的提交?

git - 如何使用特定于存储库的 VIM 撤消目录 (undodir),而不向每个克隆存储库的人透露我的路径结构?

repository - Tortoise SVN Repo-浏览器

git - 在错误的分支中提交 2 次后该怎么办

android - 如何将 repo 同步输出重定向到文件中

windows - 在 LAN 中的系统上设置和查找 svn 存储库

repository - 存储库应该有更新/保存/删除方法吗?