基本问题:如何将git repo与其克隆的来源解除关联?
git branch -a
显示:
* master
remotes/origin/HEAD -> origin/master
我希望删除所有原产地知识和相关修订。
更长的问题:我想采用现有的subversion repo并从中制作一些较小的git repos。每个新的git repos都应该包含相关分支的完整历史记录。我可以使用:
将repo修剪为只需要的子树git filter-branch --subdirectory-filter path/to/subtree HEAD
但是生成的repo仍然包含origin / master分支下现在丢弃的子树的所有修订。
我意识到我可以使用-T标志来git-svn来首先克隆subversion repo的相关子树。我不确定这是否比后来在git repo的副本上运行git filter-branch --subdirectory-filter
的多个实例更有效,但无论如何,我仍然希望打破与原点的链接。
答案 0 :(得分:374)
相当简单:
git remote rm origin
至于filter-branch
问题 - 只需将--prune-empty
添加到您的过滤器分支命令中,它将删除任何实际上不包含您的结果仓库中任何更改的修订:
git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD
答案 1 :(得分:0)
删除现有来源并将新来源添加到您的项目目录中
>$ git remote show origin
>$ git remote rm origin
>$ git add .
>$ git commit -m "First commit"
>$ git remote add origin Copied_origin_url
>$ git remote show origin
>$ git push origin master