+8 votes
1 view
in Devops and Agile by (19.5k points)
edited by

Basic question: How do I disassociate a git repo from the origin from which it was cloned?

git branch -a  shows:

* master

  remotes/origin/HEAD -> origin/master

and I want to remove all knowledge of origin, and the associated revisions.

I want to take an existing subversion repo and make a number of smaller git repos from it. Each of the new git repos should have the full history of just the relevant branch. I can prune the repo to just the wanted subtree using:

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

but the resulting repo still contains all the revisions of the now-discarded subtrees under the origin/master branch.

I realize that I could use the -T flag to git-svn to clone the relevant subtree of the subversion repo in the first place. I'm not sure if that would be more efficient than later running multiple instantiations of git filter-branch --subdirectory-filter on copies of the git repo but, in any case, I would still like to break the link with the origin.

1 Answer

+8 votes
by (33.8k points)

For this question, you need to add one more option(ie. --prune-empty) to your relevant  branch using:

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

Here filter-branch is mentioned in the question as a remote. This will help you to remove an origin from the git repository.

In a short way

git remote rm origin

Refer: https://git-scm.com/docs/git-remote#Documentation/git-remote.txt-emrmem

...