我有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-patch
从 A
pull 不在 B
上的提交,反之亦然,并将它们写到 .patch
文件。
然后,在另一个 repo 中,使用 git apply
将 .patch
文件提交应用到该 repo。如果存在冲突,您将有机会解决它们。
这与“cherry-picking”提交基本相同,但跨存储库而不是跨分支。
(如果你愿意,你也可以使用 git am
而不是 git apply
,只是有点不同。)
关于git - 将文件从一个 Git 存储库推送到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32504741/