25

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

谢谢,

阿里

4

4 回答 4

41

首先克隆您要使用的存储库。如果您希望这一切都发生在您已经在其中的文件夹中,则可以跳过此步骤。

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

克隆将带入该目录中指定的遥控器。所以你需要删除你不想要的遥控器。

git remote rm <remote>

并在创建远程存储库后添加您所做的那些。

git remote add origin <url>

你还想--set-upstream-to,或者-u告诉 git 这是这个分支将更新到的远程存储库,假设你在主(或默认)分支上。

git push -u origin main

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

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

于 2013-07-09T11:40:10.847 回答
12

您可以简单地使用set-url将现有存储库推送到新存储库:

  1. cd file:///path/to/repo/
  2. git remote set-url origin <url-of-new-repo>
  3. git push -u origin master
于 2018-06-19T09:32:28.663 回答
2

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

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

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

于 2013-07-09T10:52:51.070 回答
2

如果您只需要现有 repo 的特定分支,您可以简单地将分支拉入新 repo。

这将非常快,因为只提取分支中的提交。

例如

git init newRepo && cd newRepo
git pull <existing repo url> <branch (optional)>
于 2020-12-31T10:01:40.143 回答