我正在使用Git(在bitbucket上)并拥有一个包含我的代码的存储库。我现在想要使用这个代码并在很大程度上将它修改为另一个项目。我理解我应该将常用组件抽象到第三个库并使用它但是为了参数,如果我想将当前存储库克隆到新存储库中,这是否可能无需手动复制代码并推送到新的回购?
谢谢,
阿里
答案 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
将现有存储库推送到新的存储库中:
cd file:///path/to/repo/
git remote set-url origin <url-of-new-repo>
强> git push -u origin master
答案 2 :(得分:1)
您可以克隆现有的仓库并删除遥控器,也可以复制文件系统上的文件夹,并在一个副本中更改/删除遥控器。
但是由于你的问题不太清楚,这里有另一件事可能:
将另一个遥控器添加到现有遥控器(除了原点)并推送到该遥控器。
答案 3 :(得分:1)
如果您只需要现有存储库的特定分支,您只需将该分支拉入新存储库即可。
这会非常快,因为只有分支中的提交被拉取。
例如
git init newRepo && cd newRepo
git pull <existing repo url> <branch (optional)>