2012-02-10 40 views
184

基本问题:如何从git仓库克隆的来源中分离git仓库?如何从git存储库中删除原点

git branch -a显示:

* master 
    remotes/origin/HEAD -> origin/master 

,我想删除的所有原产知识,以及相关的修订。

更长的问题:我想采取一个现有的颠覆回购,并从它做出一些较小的git回购。每个新的git回购应该只有相关分支的完整历史。我可以修剪回购只是使用通缉子树:

git filter-branch --subdirectory-filter path/to/subtree HEAD 

但由此产生的回购仍包含origin/master的分支下现已废弃子树的所有修订。

我意识到我可以使用-T标志来git-svn克隆颠覆回购的相关子树在第一位。我不确定这是否会比后来在git repo的副本上运行多个实例git filter-branch --subdirectory-filter更有效,但是无论如何,我仍然希望打破与原点的链接。

回答

311

相当简单:

git remote rm origin 

至于filter-branch问题 - 只需添加--prune-empty到过滤器的分支命令,它会删除实际上并不包含在您造成回购任何更改任何修改:

git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD 
+1

谢谢。这是我失踪的“空灵”。 – awy 2012-02-10 09:02:34

+2

嗯。得到'错误:无法删除配置节'remote.origin'' – 2016-08-18 22:28:10