如何将文件从本地git hub存储库移动到另一个git存储库

时间:2016-02-24 17:39:31

标签: git github

问题是每次我尝试将文件夹从我的旧存储库手动移动到新存储库时,它会给我一个错误,即一个文件夹中有太多文件夹要移动。

有人告诉我,如果我可以从这个文件夹中删除最后3或4个文件夹,我应该可以移动它并执行npm install和其他一些步骤然后将其推送到新文件夹存储库分支。然后我尝试了,但另外几个文件夹在所有不同的位置给出了相同的问题。所以我认为必须有一种方法可以使用git / github将所有这些文件从我的旧存储库移动到新存储库。

不幸的是,当我设置了新的存储库时,我对远程存储库的访问被远程撤销,所以现在我只需要移动旧存储库的本地文件。

GitHub桌面不会让我克隆我的旧文件,因为新的存储库存在(它没有意义,但它逐字逐句地说)。

我可以在cmd中输入一串命令,我可以将所有文件从存储库1传输到存储库2,然后推送新的存储库2吗?

当我手动将旧的存储库文件复制并粘贴到新存储库文件中时,它会为几个不同的文件夹提供此错误。

  

源路径太长

我只需要知道我是否可以使用Git将我的文件从第一个存储库移动到第二个存储库。不使用github.com或Github桌面应用程序。

1 个答案:

答案 0 :(得分:3)

首先,要意识到使用Git,存储库的每个副本都是完整的副本。有例外,例如浅层克隆......但大部分时间并非如此,并且您已经拥有整个历史的完整副本。

其次,您可以在回购中拥有多个远程URL。此外,如果您不再计划使用之前的网址,则可以更改您指向的网址。

您根本不需要执行任何本地文件复制。您只需要更改现有存储库所指向的URL。

假设通常的参数,您的遥控器可能名为origin,您可能在master分支。

git remote set-url origin git@github.com:your-username/new-repo-name
git push -u origin master

这将改变origin远程点的位置,然后将主分支推送到新的远程(服务器)。 -u标记会将master分支设置为自动跟踪此新网址,因此将来只需git pushgit pull即可,无需指定远程或分支

这只会推高master分支,但您可以根据需要多次重复命令以推送其他分支。

git checkout some-branch
git push -u origin some-branch

这将完全转移到新的Git URL。您也可以在旧遥控器的旁边设置新的遥控器。要做到这一点,您只需添加另一个遥控器,而不是使用set-url更改网址。

git remote add new-repo git@github.com:your-username/new-repo-name
git push -u origin master

此处再次设置-u以设置自动跟踪功能。如果您不想更改远程跟踪的处理方式,只需省略-u