Git:将存储库克隆到新的存储库中

时间:2013-07-09 10:45:48

标签: git bitbucket repository

我正在使用Git(在bitbucket上)并拥有一个包含我的代码的存储库。我现在想要使用这个代码并在很大程度上将它修改为另一个项目。我理解我应该将常用组件抽象到第三个库并使用它但是为了参数,如果我想将当前存储库克隆到新存储库中,这是否可能无需手动复制代码并推送到新的回购?

谢谢,

阿里

4 个答案:

答案 0 :(得分:16)

首先克隆您要使用的存储库。如果您希望在您已经在的文件夹中完成所有操作,则可以跳过此步骤。

git clone file:///path/to/repo/

克隆将带来该目录中指定的遥控器。所以你需要remove the remotes你不想要的。

git remote rm <remote>

在创建远程存储库后添加您执行的操作。

git remote add origin <url>

您还希望--set-upstream-to, or -u告诉git这是该分支将更新的远程存储库,假设您在主分支上。

git push -u origin master

然后,您需要确定要保留哪些分支并添加到远程。如果您想推送所有这些内容,请执行git push --mirror。这将推送您的所有标签和遥控器。但是,由于我们在之前的步骤中编辑了您的遥控器,因此它应该不是问题。

如果你只想保留一些,你可以git push -u origin <branch>你想要的每一个。

答案 1 :(得分:3)

您只需使用 set-url 将现有存储库推送到新的存储库中:

  1. cd file:///path/to/repo/
  2. git remote set-url origin <url-of-new-repo>
  3. git push -u origin master

答案 2 :(得分:1)

您可以克隆现有的仓库并删除遥控器,也可以复制文件系统上的文件夹,并在一个副本中更改/删除遥控器。

但是由于你的问题不太清楚,这里有另一件事可能:

将另一个遥控器添加到现有遥控器(除了原点)并推送到该遥控器。

答案 3 :(得分:1)

如果您只需要现有存储库的特定分支,您只需将该分支拉入新存储库即可。

这会非常快,因为只有分支中的提交被拉取。

例如

git init newRepo && cd newRepo
git pull <existing repo url> <branch (optional)>