是否可以从另一个用户的存储库中的用户的GitHub存储库提交更改?

时间:2018-03-15 10:19:41

标签: git github merge diff

系统:Windows 10上的git Bash。

由于一系列原因,我为同一个项目提供了两个不同的GitHub存储库(具有相同名称),来自两个不同组织的两个不同用户(让我们称之为John和Doe)。我需要将Doe完成的修改合并到John的代码中。我很确定合并可以正常工作而且没有冲突:

  • 这两个存储库具有相同的目录树,在相同的子文件夹中具有相同名称的文件
  • 我没有彻底检查过每个文件(你/你如何diff两个不同的存储库?),但我几乎可以肯定,Doe所做的所有修改都是John的最后一个修改。因此不应该有任何冲突,因为John和Doe不应该以任何方式修改任何文件。

我从来没有遇到需要合并来自不同用户的存储库的代码的情况:我不能将Doe添加为John的repo的贡献者,但我可以在我的机器上的两个不同的文件夹中克隆这两个存储库。我想做尽可能少的修改,如果可以,我要避免rebase。我想到了两个解决方案:

仅覆盖已修改的文件(首选)

如果有办法查看两个存储库中哪些文件不同,我将只使用Doe存储库中的修改文件覆盖John存储库中的不同文件,addcommit更改,以及push到John的存储库。这是我更喜欢的解决方案,但我不知道如何找到不同用户的存储库中的文件不同。如果我可以将不同文件的路径写入文件会很棒 - 这样我就可以编写一个脚本来自动覆盖这些文件,而不必手动复制它们。

使用Doe的文件覆盖所有John的文件(暴力解决方案)

如果找到两个存储库之间的文件不同是不可行和/或不实际的,我可以将Doe存储库中的所有文件夹(.git文件夹除外)复制到John的存储库中。由于文件夹和文件的名称相同,所有文件(甚至是相同的文件)都将被覆盖,并且在提交更改时,我猜git会将所有文件标识为已修改。这有效,但我不喜欢它:第三个查看提交历史记录的人会觉得所有文件都因为这个提交而被修改,而实际上只有很少的文件。

我想不出别的什么,但我当然愿意接受其他解决方案。

0 个答案:

没有答案