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

awy*_*awy 245 git git-svn

基本问题:如何将git repo与其克隆的来源解除关联?

git branch -a 说明:

* master
  remotes/origin/HEAD -> origin/master
Run Code Online (Sandbox Code Playgroud)

我想删除所有原产地知识和相关修订.

更长的问题:我想采用一个现有的subversion repo并从中做出一些较小的git repos.每个新的git repos都应该包含相关分支的完整历史记录.我可以使用以下命令将repo修剪为只需要的子树:

git filter-branch --subdirectory-filter path/to/subtree HEAD
Run Code Online (Sandbox Code Playgroud)

但是生成的repo仍然包含origin/master分支下现在丢弃的子树的所有修订版.

我意识到我可以使用-T标志来git-svn来首先克隆subversion repo的相关子树.我不确定这是否比后来运行git filter-branch --subdirectory-filtergit repo副本的多个实例更有效,但无论如何,我仍然希望打破与原点的链接.

Amb*_*ber 416

非常坦率的:

git remote rm origin
Run Code Online (Sandbox Code Playgroud)

至于filter-branch问题 - 只需添加--prune-empty到您的过滤器分支命令,它将删除任何实际上不包含您的结果仓库中的任何更改的修订:

git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD
Run Code Online (Sandbox Code Playgroud)

  • 嗯.得到'错误:无法删除配置部分'remote.origin' (2认同)

小智 29

删除现有源并将新源添加到您的项目目录

>$ 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
Run Code Online (Sandbox Code Playgroud)