如何从git存储库中删除原点

时间:2012-02-10 08:21:52

标签: git git-svn

基本问题:如何将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的多个实例更有效,但无论如何,我仍然希望打破与原点的链接。

2 个答案:

答案 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