Hoe de oorsprong uit de git-repository te verwijderen

Basisvraag: hoe kan ik een git-repo loskoppelen van de oorsprong waaruit deze is gekloond?

git branch -atoont:

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

en ik wil alle kennis van oorsprong en de bijbehorende revisies verwijderen.

Langere vraag: ik wil een bestaande subversion-repo nemen en er een aantal kleinere git-repo’s van maken. Elk van de nieuwe git-repo’s zou de volledige geschiedenis van alleen de relevante branch moeten hebben. Ik kan de repo snoeien tot alleen de gewenste substructuur met:

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

maar de resulterende repo bevat nog steeds alle revisies van de nu weggegooide substructuren onder de origin/master branch.

Ik realiseer me dat ik de vlag -T zou kunnen gebruiken om git-svn te gebruiken om in de eerste plaats de relevante substructuur van de subversion-repo te klonen. Ik weet niet zeker of dat efficiënter zou zijn dan het later uitvoeren van meerdere instantiaties van git filter-branch --subdirectory-filterop kopieën van de git repo, maar ik zou in ieder geval nog steeds verbreek de link met de oorsprong.


Antwoord 1, autoriteit 100%

Behoorlijk eenvoudig:

git remote rm origin

Wat betreft de filter-branch-vraag – voeg gewoon --prune-emptytoe aan uw filter branch-opdracht en het zal elke revisie verwijderen die niet echt bevat eventuele wijzigingen in uw resulterende repo:

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

Antwoord 2, autoriteit 5%

Bestaande oorsprong verwijderen en nieuwe oorsprong toevoegen aan uw projectdirectory

>$ 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

Other episodes