从一个Git仓库推送文件到另一个仓库

3
我有两个Git仓库,基本结构相同,但B仓库只有A仓库的部分内容。
A仓库有我需要推送到B仓库的更新提交(但仅需要的文件)。
到目前为止,我已经将这些仓库克隆到了我的工作站。应该如何用A仓库中的文件替换B仓库中的必要文件?
我尝试过使用git mv /A/source/* /B/source/,结果是:
fatal: /B/source/: '/B/source/' is outside repository

由于我对git比较新,我不确定自己应该尝试什么目标。让我尝试解释一下背景:我们在A仓库里进行了活跃的开发工作。B仓库当前是为第三方提供部分内容的。A仓库的版本是1.6,而B仓库的版本是1.4。所以我的目标是将必要的新内容推送到B仓库。我猜这将会提交在A仓库中1.5和1.6期间所做的改动到B仓库中?


你只是想替换文件吗?不需要重新提交或做其他的操作吗? - Thomas Stringer
1
由于我对Git还比较陌生,不太确定应该达成什么目标。我会尝试解释一下背景:我们在存储库A中进行了活跃的开发。存储库B目前供第三方访问部分内容(他们只需要其中的部分)。存储库A有版本1.6,而B有1.4。因此,我的目标是将新内容推送到B。不确定在这种情况下应该采取什么措施@ThomasStringer。 - Jyrkki
2个回答

3
我认为最可靠的方法是传输实际提交。使用git format-patchA中拉取未在B上的提交,或反之亦然,并将它们写入.patch文件中。
然后,在另一个仓库中,使用git apply.patch文件提交应用到该仓库。如果有冲突,您将有机会解决这些冲突。
这基本上与“cherry-picking”提交相同,但是跨存储库而不是跨分支。
(如果想要的话,您也可以使用git am代替git apply,它们只是有点不同。)

谢谢!将在测试环境中尝试此操作以备将来参考。 - Jyrkki

0
我们最终做的是:
git rm /B/<files_to_replace> 

cp /A/<necessary_files> /B/

git add ...

这可能不是正确的做法,但我们有点赶时间,现在它可以完成工作。感谢您的帮助!:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接