我正在使用 Git(在 bitbucket 上)并且有一个包含我的代码的存储库。我现在想使用这段代码并在很大程度上修改它以用于另一个项目。我知道我应该将公共组件抽象到第三个库并使用它,但是为了争论,如果我想将当前存储库克隆到一个新的存储库中,这是否可能无需手动复制代码并推送到一个新的回购?
谢谢,
阿里
我正在使用 Git(在 bitbucket 上)并且有一个包含我的代码的存储库。我现在想使用这段代码并在很大程度上修改它以用于另一个项目。我知道我应该将公共组件抽象到第三个库并使用它,但是为了争论,如果我想将当前存储库克隆到一个新的存储库中,这是否可能无需手动复制代码并推送到一个新的回购?
谢谢,
阿里
首先克隆您要使用的存储库。如果您希望这一切都发生在您已经在其中的文件夹中,则可以跳过此步骤。
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>
每个你想要的。
您可以简单地使用set-url
将现有存储库推送到新存储库:
cd file:///path/to/repo/
git remote set-url origin <url-of-new-repo>
git push -u origin master
您可以克隆现有存储库并删除遥控器,也可以复制文件系统上的文件夹并在一份副本中更改/删除遥控器。
但是由于您的问题不太清楚,所以这里有另一件事是可能的:
将另一个遥控器添加到现有遥控器(除了原点)并推送到该遥控器。
如果您只需要现有 repo 的特定分支,您可以简单地将分支拉入新 repo。
这将非常快,因为只提取分支中的提交。
例如
git init newRepo && cd newRepo
git pull <existing repo url> <branch (optional)>