Czy powinienem przechowywać moje rozwidlone repozytoria GitHub na zawsze?

314

Więc rozwidliłem czyjeś repozytorium, wprowadziłem kilka zmian, przesłałem żądanie ściągnięcia, a moje zmiany zostały wprowadzone do produktu. Wspaniały!

Ale ... co powinienem zrobić z moim rozwidlonym repozytorium? Czy istnieje ważny powód, aby utrzymywać moje repozytorium w pobliżu, czy powinienem je usunąć? Nie planuję wnosić żadnych dodatkowych wkładów, ale jeśli zmienię zdanie, zakładam, że zawsze mogę to zmienić.

Tak naprawdę nie martwię się o tworzenie kopii zapasowych. Bardziej martwię się zerwaniem linków, utratą komunikatów zatwierdzania itp.

Brant Bobby
źródło
80
Usuń go, bo w github zabraknie skrótów.
Armand
3
zduplikowany kod jest zły. I to również przekracza granice git.
stijn
7
@stijn - czytam to bardziej jako „kopia zapasowa” niż „duplikat”. I nie sądzę, żebym kiedykolwiek słyszał, jak ktokolwiek twierdzi, że kod zapasowy jest zły ...
Beekguk
3
Usuń to. W końcu zawsze możesz pobrać ostatni stan (taki, z którego i tak będziesz chciał kontynuować pracę) z repozytorium projektu.
Wieża
Co się stanie, jeśli oryginalne repozytorium zostanie usunięte i nikt nie ma widelców? Jak w takim przypadku odzyskać dostęp do repo / fork?
Kromster,

Odpowiedzi:

40

Usunięcie rozwidlonych repozytoriów usunie historię z twoich wniosków ściągania.

PR z nieznanym repozytorium

Usunięcie rozwidlonego repozytorium spowoduje usunięcie wszelkich informacji związanych z tym repozytorium. Może to wpłynąć wstecz na wszelkie odwołania do repozytorium, w tym żądania ściągnięcia, które zostały już scalone. (Zobacz Żądanie ściągnięcia wyświetla „nieznane repo” po usunięciu widelca )

Twoje komentarze i zatwierdzenia powinny być zachowane przy każdym żądaniu ściągnięcia, które było powiązane z twoim repozytorium, ale zrobisz to na własne ryzyko.

Jednak usuwanie starych gałęzi po scaleniu jest całkowicie bezpieczne.

Chociaż należy unikać usuwania repozytoriów, usuwanie nieużywanych oddziałów jest całkowicie dopuszczalne. W rzeczywistości GitHub zachęca do usuwania starych gałęzi .

Sprzątanie po prośbach Pull

W GitHub uwielbiamy korzystać z Pull Pulls przez cały dzień, każdego dnia. Jedyny problem polega na tym, że po scaleniu lub zamknięciu zleceń pull powstaje wiele nieczynnych gałęzi. Od czasu do czasu jeden z nas wyczyścił te gałęzie za pomocą skryptu, ale pomyśleliśmy, że lepiej będzie zająć się tym krokiem w ramach naszego regularnego przepływu pracy na GitHub.com.

Od dzisiaj po scaleniu żądania ściągnięcia zobaczysz przycisk do usunięcia gałęzi trwałej:

Usuń ten przycisk oddziału

Jeśli żądanie ściągnięcia zostało zamknięte bez scalenia, przycisk będzie wyglądał nieco inaczej, aby ostrzec cię przed usunięciem nie połączonych zatwierdzeń:

Usuń gałąź z ostrzeżeniem

Oczywiście możesz usuwać tylko oddziały w repozytoriach, do których masz dostęp push.

Życzymy udanych repozytoriów!

Alternatywnie, jeśli naprawdę nie chcesz ich trzymać, możesz zarchiwizować repozytorium, aby wskazać, że nie jest już aktywnie utrzymywane.

Zobacz też

Stevoisiak
źródło
1
Co dokładnie dzieje się z nie połączonymi zamkniętymi żądaniami ściągania po usunięciu ich gałęzi (drugi przypadek w cytowanym artykule)? Czy zatwierdzenia będą nadal dostępne w żądaniu ściągnięcia, tylko bez ich historii, czy też całkowicie znikną?
literówka
2
@typo Zgodnie z dokumentacją GitHub: „ Nie można usuwać oddziałów powiązanych z otwartymi żądaniami ściągania.
Stevoisiak
207

Jeśli Twoje żądanie ściągnięcia zostało zaakceptowane i nie wprowadziłeś żadnych innych zmian, których możesz użyć osobiście, powinieneś je usunąć.

  1. Usunięcie niczego nie zaszkodzi.
  2. Zawsze możesz przebudować, jeśli potrzebujesz
  3. Ogranicza niepotrzebne repo w wynikach wyszukiwania, gdy ludzie czegoś szukają
  4. Jeśli użyjesz swojego GitHub jako swego rodzaju wznowienia dla potencjalnych zleceń / umów, wygląda to lepiej, jeśli nie masz dziesiątek rozwidlonych repozytoriów, nad którymi obecnie nie pracujesz. Będziesz wyglądać na bardziej wydajnego.
  5. Pomaga ci zachować zdrowie psychiczne, gdy nie musisz przeglądać setek bezużytecznych repozytoriów.
  6. Jest lepiej dla GitHub. :)
tharris
źródło
50
Jedynym minusem jest to, że żądanie ściągnięcia wyświetli wtedy „scalone commit <commit> <repo>z unknown repositorydnia <data>”, co jest nieco dziwne.
PLPeeters
18
@PLPeeters, Właściwie to dość duży minus.
Pacerier,
4
Sugeruję użycie remove-github-forksdo „Usuń wszystkie forki, które nie mają zatwierdzeń, które nie znajdują się w głównym repozytorium”. Działa jak marzenie.
fregante
3
@ SteveMoser Mogę się mylić, ale myślę, że nadal przechowujesz listę „Repozytoria, do których włączyłeś”. Miałem taki, z którego usunąłem każde połączenie i nadal tam się jakoś pozostał, ale może to być
przypadek
17
Zaryzykowałem i usunąłem rozwidlone repozytorium, a moja lista nie wpłynęła, więc mogę śmiało powiedzieć, że usunięcie rozwidlonego repo nie wpłynie na twoje kredyty
Amin Mohamed Ajani
76

Możesz usunąć widelec zaraz po przesłaniu żądania ściągnięcia , niezależnie od tego, czy zostało scalone czy nie. GitHub przechowuje wszystkie PR w repozytorium poprzedzającym , co oznacza, że ​​proponowane zmiany są śledzone, nawet jeśli rozwidlenie zostanie usunięte.

To upraszcza decyzję.

Nadal możesz chcieć zachować widelec, jeśli:

  • Od razu wniesiesz więcej (np. Rozszerzysz istniejący PR lub otworzysz nowy PR)

Możesz usunąć widelec, jeśli:

  • Chcesz mieć czyste portfolio projektów pod swoim nazwiskiem
Dennis
źródło
7
„Możesz usunąć widelec, jak tylko wyślesz żądanie ściągnięcia” Właśnie tego szukałem!
Unnawut
Ja też, ale odpowiedź zaczyna się od „Jeśli twoje żądanie ściągnięcia zostało zaakceptowane ...” Czy próbowałeś: D
Legends
4
Ostrzeżenie : po usunięciu rozwidlenia oryginalna nazwa gałęzi jest usuwana z wszelkich oczekujących żądań ściągnięcia. ( Stevoisiak chce scalić 1 zatwierdzenie Drugoy:masterzunknown repository )
Stevoisiak
20

Prawdopodobnie skompilowałbym go z tar / gzip i umieściłem w katalogu archiwum, a następnie usunęłem 3 lata później. ;) Szczerze mówiąc Jeśli nie zamierzasz nad nim pracować przez kilka następnych miesięcy i nie używałeś go przez jakiś czas, myślę, że można go bezpiecznie usunąć.

Zachary K.
źródło
9

Aby dodać do podanych odpowiedzi - sam GitHub zaleca usuwanie („porządkowania”) rozwidlonych repozytoriów po ich scaleniu.

Można to zrobić bezpośrednio w żądaniu ściągnięcia po scaleniu - zobacz ten post na blogu .

Ponadto od tej chwili nie widzę żadnych wad zauważonych w komentarzach:

  • nawet po usunięciu rozwidlonego repozytorium w żądaniu ściągnięcia pojawia się poprawny komunikat (brak „nieznanego repozytorium”)
  • repozytorium, do którego włączyłeś się, jest nadal wymienione w Twojej działalności związanej z wkładami
  • nadal jesteś wymieniony wśród autorów tego repozytorium

Nie polecam usuwania go przed scaleniem, jak sugeruje @Dennis, ponieważ może być konieczne wprowadzenie pewnych modyfikacji w kodzie na żądanie autorów.

Marius Balčytis
źródło
2
Właśnie usunąłem rozwidlone repozytorium i teraz żądanie ściągnięcia mówi unknown repository. No cóż.
Krassi 11.04.17
10
Twój link prowadzi do artykułu wyjaśniającego, jak usunąć gałąź po udanym scaleniu PR; pytanie to dotyczy jednak usunięcia repozytorium . „Nieznane repozytorium” będzie obserwowane tylko wtedy, gdy usuniesz własny rozwidlenie projektu ( repozytorium ).
stakx
2
Pytanie dotyczy usunięcia widelca, a nie gałęzi.
Andy,