从先前克隆的项目创建新的repo /项目

时间:2016-08-11 08:10:19

标签: git repository git-push git-init

我克隆了一个来自Git(Bitbucket)的现有仓库,并将该文件复制到一个新位置。现在我想把它推到一个空的存储库到Bitbucket作为一个新项目,其中包含与该项目相关的更改。发生了这种情况:

git remote add origin
fatal: remote origin already exists

之后我检查了git版本(使用$ git remote -v),它指示来自上一个项目的原始克隆git repo。有没有办法删除git历史记录,以便我可以执行git init并将项目推送到新的repo?如果我使用 rm -rf .git 会损害原来克隆的git repo吗?或者我可以初始化新项目并将其推送到新的空仓库吗?

3 个答案:

答案 0 :(得分:2)

描述

你得到这个

的原因
  

fatal: remote origin already exists

是因为origin是远程存储库的本地版本。可以将其视为名为origin的文件夹。

实施例

添加远程

时只需更改名称即可
git remote add <name> <url>

您可以使用您喜欢的任何名称,只要它不违反文件系统 所适用的条件

或者,您可以删除remote来源。

git remote rm origin

注意 这将从您的文件系统中删除名为origin的远程存储库的本地副本!

参考

git-remote

答案 1 :(得分:1)

在.git中,您存储与您的git存储库的本地克隆相关的外包。在你的情况下,删除它并重新运行git init应该没问题。后。完成此操作后,您必须提交完整的文件夹....所以你的命令看起来像(伪)

$ cd new_project
$ rm -rf .git
$ git init .
$ git add *
$ git commit -m "Initial commit of my fork"
$ git remote add … 
$ git push

但是,这会清除fork基础的完整历史记录。我会考虑这种不好的风格,并且可能会与版权冲突,具体取决于使用许可证原始项目。为什么不考虑完整的分叉并做一些像:

$ cd original_repo
$ git remote add -f myfork <bitbucketurl>
$ git push myfork 

完成此操作后,您可以从克隆中删除原始来源,也可以从bitbucket中重新克隆。这将保留原始历史。

答案 2 :(得分:0)

您可以简单地添加新的远程(git remote add new_origin destination),或重命名实际的(git remote rename origin old_origin),或删除实际的{git remote rm actual_destination)。