Jak przeszukiwać i organizować historię repozytorium za pomocą usługi GitHub

Ukończone

W tym miejscu omówimy sposób używania filtrów, winy i łączenia krzyżowego do historii wyszukiwania i organizowania repozytorium.

Postaw się w sytuacji dewelopera, który właśnie dołączył do dużego projektu. Ktoś opublikował nowy problem, zgłaszając usterkę dotyczącą paska bocznego aplikacji internetowej, i przypisano Cię do jego rozwiązania. Po kilkukrotnym przeczytaniu zgłoszenia wiesz już, na czym polega opisywany problem, a teraz musisz określić, jak rozpocząć jego rozwiązywanie.

Jako nowy członek zespołu nie znasz jeszcze bazy kodu. Nie była również częścią dyskusji dotyczących planowania, przeglądów kodu ani innych elementów, które zapewnią kontekst potrzebny do rozpoczęcia implementacji. Najpierw musisz uzyskać tę podstawową wiedzę, aby najlepiej określić właściwą poprawkę.

Wyszukiwanie w usłudze GitHub

Chociaż nie było Cię przy wydarzeniach prowadzących do zaimplementowania paska bocznego, wiele z tych wydarzeń można znaleźć w historii projektu. Przeszukanie repozytorium projektu pod kątem paska bocznego to dobry punkt początkowy.

W usłudze GitHub są dostępne dwie metody wyszukiwania: wyszukiwanie globalne u góry strony i wyszukiwanie w zakresie dostępne na niektórych kartach repozytorium. Obsługują one tę samą składnię i funkcję w taki sam sposób, ale z pewnymi kluczowymi różnicami.

Wyszukiwanie globalne umożliwia wyszukiwanie w całej usłudze GitHub za pomocą pełnej składni wyszukiwania.

Zrzut ekranu przedstawiający wyszukiwanie w usłudze GitHub.

Wyniki wyszukiwania są kompleksowe i obejmują wszystko, od kodu do problemów z witryną Marketplace (a nawet użytkowników). Jest to najlepszy sposób znajdowania wzmianek o kluczowych terminach w wielu typach wyników i repozytoriach.

Zrzut ekranu przedstawiający globalne wyniki wyszukiwania.

Uwaga

Klauzula filtru is:pr odfiltrowuje problemy zwracane z magazynu problemów / żądań ściągnięcia. Niektóre klauzule filtrów, takie jak is:pr, są obsługiwane tylko przez niektórych dostawców wyszukiwania, a ignorowane przez innych. Na przykład dostawca wyszukiwania kodu nie obsługuje tej klauzuli, dlatego zignoruje ją i zwróci te same wyniki kodu w dowolny sposób.

W naszym scenariuszu użycie wyszukiwania globalnego o zakresie ograniczonym do bieżącego repozytorium to dobry sposób na znalezienie kodu i zatwierdzeń, gdzie wspomina się o pasku bocznym. Prawdopodobnie trafisz również w przypadku problemów i żądań ściągnięcia, chociaż nie są one tak łatwe do filtrowania w widoku wyników wyszukiwania globalnego.

Aby utworzyć złożone wyszukiwanie globalne, spróbuj użyć wyszukiwania zaawansowanego.

Wyszukiwanie kontekstowe jest dostępne na niektórych kartach, np. Issues (Problemy) i Pull requests (Żądania ściągnięcia). Zakres tego wyszukiwania jest ograniczony do bieżącego repozytorium i zwraca ono tylko wyniki tego typu. Zaletą tego zakresu jest umożliwienie interfejsowi użytkownika uwidaczniania znanych filtrów specyficznych dla typu, takich jak autorzy, etykiety, projekty i inne.

Zrzut ekranu przedstawiający wyszukiwanie kontekstowe w repozytorium.

Korzystanie z wyszukiwania kontekstowego jest preferowaną opcją, gdy szukasz czegoś w bieżącym repozytorium. W naszym scenariuszu jest to dobry sposób znajdowania wyników wyszukiwania, które wspominają o "pasku bocznym", który można następnie łatwo uściślić przy użyciu list rozwijanych filtrów.

Korzystanie z filtrów wyszukiwania

Wyszukiwanie przy użyciu pełnej składni wyszukiwania można wykonywać na nieskończoną liczbę sposobów. Jednak większość wyszukiwań korzysta jedynie z kilku typowych filtrów. Chociaż są one często dostępne z list rozwijanych wyszukiwania kontekstowego, czasami wygodniejsze jest wpisanie ich bezpośrednio.

Oto kilka przykładowych zapytań filtrów:

Query Wyjaśnienie
is:open is:issue assignee:@me Otwarte problemy przypisane do bieżącego użytkownika (@me)
is:closed is:pr author:contoso Zamknięte żądania ściągnięcia utworzone przez użytkownika @contoso
is:pr sidebar in:comments Żądania ściągnięcia, które w komentarzu zawierają słowo „sidebar”
is:open is:issue label:bug -linked:pr Otwarte problemy oznaczone jako usterki, które nie mają połączonego żądania ściągnięcia

Dowiedz się więcej o składni wyszukiwania

Co to jest polecenie git blame?

Pomimo złowieszczej nazwy git blame to polecenie wyświetlające historię zatwierdzeń dla pliku. Ułatwia sprawdzenie, kto wprowadził jakie zmiany i kiedy. Ułatwia to śledzenie innych osób, które pracowały nad plikiem, aby szukać swoich danych wejściowych lub uczestnictwa.

Uwaga

Niektóre systemy Git tworzą alias git praise dla polecenia git blame, aby uniknąć implikacji oceny.

Wina w usłudze GitHub

Usługa GitHub rozszerza podstawową funkcjonalność polecenia git blame, zapewniając bardziej niezawodny interfejs użytkownika.

Zrzut ekranu przedstawiający winę usługi GitHub.

W naszym scenariuszu dostęp do tego widoku można uzyskać na kilka sposobów. Możesz znaleźć kod paska bocznego z wyszukiwania globalnego i wybrać opcję Obwinianie , aby zobaczyć, kto pracował nad nim ostatnio, lub być może znaleziono żądanie ściągnięcia i prześledziłeś to z powrotem do ostatniego zatwierdzenia, które wydaje się związane z opisem usterki. Niezależnie od tego, jak tam trafisz, widok winy jest skutecznym sposobem na znalezienie eksperta z zakresu danego zadania.

Linki krzyżowe do problemów, zatwierdzeń i innych elementów

Usługa GitHub świetnie się sprawdza w przypadku wspólnych projektów oprogramowania między innymi dlatego, że obsługuje tworzenie linków między odrębnymi informacjami. Czasami dzieje się to automatycznie, np. wtedy, gdy tworzysz żądanie ściągnięcia z serii zatwierdzeń w gałęzi. Innym razem można ręcznie utworzyć link z żądań ściągnięcia lub projektów do problemów przy użyciu opcji listy rozwijanej w interfejsie.

Odwołania z automatycznie tworzonymi linkami

Aby jeszcze bardziej ułatwić tworzenie linków krzyżowych między różnymi elementami w projekcie, usługa GitHub oferuje skróconą składnię. Jeśli na przykład napiszesz komentarz Duplicate of #8 (Duplikat numeru 8), usługa GitHub rozpozna, że #8 to problem i utworzy odpowiedni link za Ciebie.

Zrzut ekranu przedstawiający problem z automatycznym linkiem.

Usługa GitHub tworzy także linki do zatwierdzeń, jeśli wkleisz co najmniej siedem pierwszych znaków identyfikatora.

Zrzut ekranu przedstawiający zatwierdzenie automatycznie powiązane.

W naszym scenariuszu te linki mogą okazać się bardzo przydatne do uzyskiwania danych, jeśli ktoś pomyślał z wyprzedzeniem o pozostawieniu informacji o kontekście. Na przykład bieżący stan paska bocznego mógł mieć pewne znane problemy związane z zależnością języka JavaScript. Jeśli problem z tą zależnością został omówiony w innym problemie, który nie wspomniał jawnie o "pasku bocznym", trudno byłoby znaleźć. Jeśli jednak ktoś pomyślał o przyszłości i utworzył link do problemu w dyskusji, mogłoby to zaoszczędzić Ci wiele czasu. Pamiętaj o tym, gdy będziesz dokumentować problemy i żądania ściągnięcia.

Dowiedz się więcej o adresach URL i odwołaniach, do których są automatycznie tworzone linki.

Informowanie użytkowników za pomocą elementu @mention

Poza tworzeniem linków do problemów i zatwierdzeń często pomocne jest kojarzenie innych osób z dyskusjami. W tym celu najprościej użyć elementu @mention. Ten rodzaj wzmianki powoduje powiadomienie danego użytkownika, dzięki czemu może on wziąć udział w dyskusji. Jest to również dobry sposób identyfikowania osób powiązanych z problemami na długo po ich zamknięciu.

Zrzut ekranu przedstawiający wzmiankę @.