我搞砸了......把一个分支从一个仓库搬到另一个仓库

时间:2014-11-12 17:07:00

标签: git github bitbucket

我搞砸了。我以为我很聪明,并且在我的GitHub帐户上为我的所有项目创建了一个私人仓库,以为我可以使用分支进行各种项目开发。我很便宜,因为我在GitHub上只有5个私人回购。现在我手上一团糟,我不知道如何“修复”它。

我想做的是将每个分支移动到它在BitBucket上的自己的回购,理想情况下保持每个分支的历史记录。每个项目都在一个单独的子文件夹中,并且每个项目都在不同的分支内完成。我希望这种分离会有所帮助。谁能知道如何清理我所造成的这些混乱?

1 个答案:

答案 0 :(得分:1)

您可以通过

将新存储库添加到当前存储库
git remote add <remote name> <repository url>

列出遥控器

git remote -v

将分支推送到新存储库

git push <remotename> <brancchname>

如果要将子文件夹推送到新存储库,请参阅以下网站

<强> Splitting a subfolder out into a new repository

将Git存储库中的文件夹转换为全新的存储库。

将文件夹拆分为单独的存储库时,您不会丢失任何Git历史记录或更改。

打开终端(适用于Mac和Linux用户)或命令行(适用于Windows用户)。 将当前工作目录更改为本地项目。 运行git filter-branch,确保包含要分隔的文件夹的名称。

git filter-branch --prune-empty --subdirectory-filter \
 YOUR_FOLDER_NAME master
# Filter the master branch to your directory and remove empty commits
# Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89)
# Ref 'refs/heads/master' was rewritten

存储库现在包含子文件夹中的所有文件。请注意,虽然以前的所有文件都已删除,但它们仍然存在于Git历史记录中。您可以选择将存储库推送到新的远程控制器,或者以通常的任何其他方式对其进行操作。

git push my-new-repo -f .
相关问题