是否有方法将代码从一个存储库导入到另一个存储库的代码中?



我有以下问题:我已经创建了一个存储库并对其进行了更改,并在git中提交了它们。现在,我意识到存储库的名称是错误的,我已经创建了另一个名称正确的存储库,我想知道是否有一种方法可以使用git将第一个存储库中的所有代码(连同我所做的更改)导入到第二个存储库中,而不是手动复制粘贴它。在第一个存储库中,有一个包含我所有更改的分支。

请注意,我不能直接更改第一个存储库的名称,因为它不属于我,我不能这样做。

任何想法?

我最初的想法是手动复制粘贴所有的类和代码,从一个存储库到另一个存储库,但这绝对是耗时的,因为第一个存储库有很多类和大量的代码,并且可能会发生一些复制粘贴错误。我只是想要一个安全快捷的方法。

  • 选项A:在您的新存储库中,您可以将旧存储库添加为远程,然后从它添加git fetch
  • 选项B:将新存储库作为远程存储库添加到旧存储库中,然后将分支git push
  • 选项C:创建另一个临时存储库,将其作为远程存储库添加到两个存储库中,然后首先将旧存储库中的git push添加到临时存储库中,然后将新存储库中的git fetch添加到临时存储库中。

选项C特别有用,如果两个存储库都在防火墙后面,并且它们没有办法直接相互通信。

短语代码…在存储库中是不精确的:

  • 一个Git存储库提交组成。
  • 每次提交保存每个文件的完整快照,以及元数据。

因此,"可以指"某一特定委员会的部分或全部文件","某一特定委员会的某一组的部分或全部文件的所有版本",甚至"某一特定委员会的部分或全部文件"。

如果您想保留实际提交本身,这是一件事(相对容易做到,但有一些限制)。SebDieBln的回答中有相应的选项。

如果您只想要来自某些或所有提交的部分或所有文件,这往往有点困难,除非您只想要来自一个特定提交的部分或所有文件。

要获取"一些但不是所有的提交",使用git checkoutgit switch从存储库中提取每个提交,将感兴趣的文件复制到其他地方,并使用Git在适当的其他存储库中创建新的提交。

若要"从某些或所有提交中获取所有文件",请考虑将上述操作自动化。

要从一个特定的提交中获取"一些文件",只需签出有问题的提交,以某种方式保存文件,然后移动到需要这些文件的存储库并提取保存的文件(整个过程可能只是cp *.py ../other-repo的问题)。在目标存储库中做一个新的提交,你就完成了。

最新更新