2012-08-23 18 views
5

Popełniłem błąd konfigurując pilota w moim repozytorium git i pobrane z zupełnie innego projektu.Naprawianie historii Git po pobraniu niewłaściwego repozytu

Na szczęście nie doszło do scalenia, ale teraz mam historię 2 projektów w moim repozytorium i staram się wymyślić, jak odzyskać moje repozytorium do stanu, w którym znajdowało się zanim popełniłem błąd. sprowadzać.

Czytałem o reflog, rebase, gc i inne polecenia próbuje wypracować który pomoże mi pozbyć się rzeczy przypadkowo naciągane, ale do tej pory nie mam żadnych gdzie.

Wygląda na to mam historię obu projektów w moim repo, ale są one całkowicie niezależne. Istnieją zasadniczo 2 oddzielne drzewa zatwierdzeń działających równolegle do siebie, w rzeczywistości jest to, co widzę w gitk patrząc na wszystkich oddziałach:

enter image description here

Można zobaczyć, że rewizje w środku są nie podłączony do commits na początku i końcu historii. Pod względem daty są przeplatane, ale z jakiegoś powodu gitk nie pokazuje ich przeplecionych.

Izolowane rewizje (w środku pic) są tymi, ja próbuję pozbyć się, a oni nie wydają się być dołączony do dowolnego oddziału. Nie ma żadnej trasy od żadnego z HEAD w moim repozytorium z powrotem do tego zestawu zatwierdzeń.

Do tej pory próbowałem (w kolejności w przypadku ma znaczenie):

git remote prune 
git prune 
git gc 
git gc --aggressive --prune=tomorrow 
git remote update --prune 
git fetch --all 

Ale nic jeszcze nie pomogło. Czy ktoś może zasugerować, w jaki sposób mogę usunąć te zatwierdzenia z mojego repo?

Odpowiedz

8

Po prostu trzeba usunąć zwisającą etykietę (0.1.something, gdzie something nie jest widoczna na zrzucie ekranu) przy użyciu git tag -d 0.1.something. Gdy to zrobisz, zatwierdzenia będą dostępne.

Dopóki istnieje tag, który osiąga zatwierdzenie, to zatwierdzenie jest uważane za osiągalne, a zatem będzie trwało "na zawsze", jest skutecznie odporne na zbieranie śmieci, dopóki nie usuniesz żadnych odniesień, które wskazują na niego (gałęzie, znaczniki, inni sędziowie, ...)

+1

Dzięki, że było dokładnie to, co potrzebne, nie przyszło mi do głowy, że może być tag zatrzymując mnie od usuwając zobowiązuje +1 – chrisbunney

Powiązane problemy