Jak przeszukiwać i organizować historię repozytorium za pomocą usługi GitHub
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
Wyszukiwanie globalne umożliwia wyszukiwanie w całej usłudze GitHub za pomocą pełnej składni wyszukiwania.
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.
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
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.
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.
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.
Usługa GitHub tworzy także linki do zatwierdzeń, jeśli wkleisz co najmniej siedem pierwszych znaków identyfikatora.
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.