2012-02-10 7 views
184

Pytanie podstawowe: Jak usunąć powiązanie repozytorium git z oryginału, z którego zostało sklonowane?Jak usunąć pochodzenie z repozytorium git

git branch -a pokazuje:

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

i chcę usunąć wszelkie poznanie pochodzenia i związane z nimi zmiany.

Dłuższe pytanie: chcę wziąć istniejące repozytorium subversion i utworzyć z niego kilka mniejszych repozytoriów git. Każdy z nowych repozytoriów git powinien mieć pełną historię tylko odpowiedniej gałęzi. mogę przycinać repo do zaledwie poszukiwanych poddrzewie używając:

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

ale uzyskany repo nadal zawiera wszystkie rewizje teraz-wyrzucanych poddrzew w gałęzi pochodzenie/master.

Zdaję sobie sprawę, że mógłbym użyć flagi -T do git-svn, aby sklonować odpowiednie poddrzewo repowersji w pierwszej kolejności. Nie jestem pewien, czy byłoby to bardziej wydajne niż późniejsze uruchamianie wielu wystąpień git filter-branch --subdirectory-filter na kopiach repozytorium git, ale w każdym razie nadal chciałbym przerwać połączenie z początkiem.

Odpowiedz

311

dość proste:

git remote rm origin 

chodzi o filter-branch pytanie - wystarczy dodać --prune-empty do polecenia filtr oddział i będzie go usunąć wszelkie zmiany, które w rzeczywistości nie zawiera żadnych zmian w swojej wynikającej repo :

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

Dzięki. To było "-prune-puste", którego mi brakowało. – awy

+2

Hmm. uzyskanie 'error: Nie można usunąć sekcji config 'remote.origin'' –

Powiązane problemy