【问题标题】:How to push changes made in a repository to another one如何将存储库中所做的更改推送到另一个存储库
【发布时间】:2020-09-03 14:18:32
【问题描述】:

所以我有一个存储库 A。我想将所做的所有更改(和历史记录)推送到另一个存储库 B。 所以,这就是我所做的:

  1. git clone [A URL]

  2. cd A // now i'm in the A directory (just to be clear)

  3. git remote add TeamRepo [B URL] // adds the B repository as a remote

  4. git push TeamRepo master // tries to push the changes to B repository

在最后一个命令之后,我有这个错误:fatal: refusing to merge unrelated histories 谁能帮我这个?我找到了一些相关的文章,但它们根本没有帮助我

【问题讨论】:

  • 该远程存储库中已经存在提交和分支。您确定是 push 命令抱怨吗?我认为推送不会导致合并。在任何情况下,如果该远程存储库中已经存在提交和分支,您需要决定如何协调它,因为您正在混合两个存储库,正如您所看到的,git 默认不允许您这样做,因为它可能是一团糟。您能否验证该存储库中是否存在某些内容,如果存在,您想要发生什么?
  • 澄清一下:repo A 已经完成了一些工作,带有特定分支(我们称之为 Features)的 repo B 没有任何内容。我想在 repo A Master 分支中的所有工作对 repo B Feature 分支提出拉取请求
  • 如果没有至少一次提交,您就不能拥有一个分支。 repo B中有提交,你需要决定如何处理这种情况。

标签: git github push git-remote


【解决方案1】:

“致命:拒绝合并不相关的历史”Git 错误发生在两个不相关的项目合并时(即,不知道彼此存在且提交历史不匹配的项目)。

您已经创建了一个新的存储库 (TeamRepo),向其中添加了一些提交,现在您正尝试从已经有自己的一些提交的远程存储库中拉/推。 Git 在这种情况下也会抛出错误,因为它不知道这两个项目是如何相关的。

解决方案: 您可以使用--allow-unrelated-histories 强制推送发生。 Documentation

【讨论】:

  • 适用于我的解决方案。也许不是最好的,但这是我必须完成的任务。
猜你喜欢
  • 2013-04-16
  • 1970-01-01
  • 2015-03-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
  • 1970-01-01
  • 2016-06-27
相关资源
最近更新 更多