Często zadawane pytania dotyczące usługi Git

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

W tym artykule znajdziesz odpowiedzi na często zadawane pytania dotyczące usługi Git, specjalnie dostosowane do usługi Azure Repos. Niezależnie od tego, czy chcesz zarządzać gałęziami zdalnymi, identyfikować bieżącą gałąź, czy obsługiwać inne mniej typowe zadania usługi Git, ten przewodnik zawiera przydatne porady i rozwiązania. Poznaj poniższe sekcje, aby ulepszyć przepływ pracy usługi Git i rozwiązać typowe problemy.

Jak łatwo pobrać gałąź zdalną do mojego lokalnego repozytorium?

Najpierw upewnij się, że masz origin skonfigurowane repozytorium. Należy to zrobić, jeśli sklonujesz repozytorium przy użyciu polecenia git clone. Po wyewidencjonowaniu gałęzi, która nie istnieje lokalnie, usługa Git sprawdza, czy istnieje gałąź zdalna o tej samej nazwie. Jeśli istnieje, usługa Git tworzy gałąź lokalną, która odwołuje się do gałęzi zdalnej. Służy git pull do pobierania zatwierdzeń i lokalnego aktualizowania historii gałęzi.

Jak sprawdzić, w której gałęzi pracuję?

Uruchom polecenie git branch bez argumentów, aby wyświetlić gałęzie lokalne i wyróżnić wyewidencjonowany. W programie Visual Studio pasek stanu wyświetla również bieżącą gałąź podczas pracy z projektem przechowywanym w lokalnym repozytorium Git.

Kiedy należy dokonać zatwierdzeń usługi Git?

Najlepszym rozwiązaniem jest wprowadzanie oddzielnych zatwierdzeń dla logicznie odrębnych zmian. Pomyśl o zatwierdzeniach jako wpisach w dzienniku. Za każdym razem, gdy wprowadzisz zmianę, zapisz ją w zatwierdzeniu. Popularne podejście polega na umożliwieniu częstych lokalnych zatwierdzeń, ale zmiażdżanie ich przez przebasowanie przed wypchnięciem. Zapewnia to elastyczność przy jednoczesnym usprawnieniu historii zatwierdzania.

Jeśli każda gałąź zachowuje pełną historię zatwierdzeń, nie sprawia, że historia zatwierdzeń *main* jest trudna do naśladowania w czasie?

Duże projekty z wieloma zatwierdzeniami i współautorami mogą skutkować historią main gałęzi, która odzwierciedla opracowywanie gałęzi tematów więcej niż ogólny projekt. Usługa Git umożliwia kondensowanie zatwierdzeń w gałęziach za pomocą zatwierdzeń i ponownego łączenia. Zatwierdzenia squashing sprawiają, że historia gałęzi jest mniej szczegółowa, upraszczając historię zatwierdzeń w gałęzi głównej po scaleniu.

Jak sprawdzić, kto dokonał określonej zmiany w pliku?

git blame Użyj polecenia , aby dowiedzieć się, kto dokonał określonej zmiany w pliku. Z repozytorium lokalnego możesz uruchomić git blame polecenie z parametrem -L , określając, które wiersze zainteresowania. Blame generuje sformatowane dane wyjściowe z zatwierdzeniem, które ostatnio zaktualizowało wiersz i nazwę osoby, która dokonała zatwierdzenia.

> git blame Example_repo -L 20,+40  # show the blame output for the next 40 lines starting at line 20

215d1108 (Example User 2015-11-21 09:54:23 -0800 20) line 20 of the code
215d1108 (Example User 2015-11-21 09:54:23 -0800 21) line 21 of the code
215d1108 (Example User 2015-11-21 09:54:23 -0800 22) line 22 of the code

Blame wyszukuje historię zatwierdzń. Możesz również przejrzeć historię pliku w portalu internetowym, aby określić, kto dokonał zmiany i kiedy. Otwórz Eksploratora kodu dla repozytorium i gałęzi, a następnie wybierz interesujący go plik. Usługa Azure Repos przedstawia pełną historię zatwierdzń dla tego pliku w bieżącej gałęzi.

Wprowadzono zmiany w niektórych plikach, a teraz nie mogę wyewidencjonować innej gałęzi ani zmienić bazy mojej pracy.

Wyewidencjonowanie w innej gałęzi w usłudze Git wpływa na stan plików w systemie plików. Usługa Git używa historii zatwierdzeń, aby upewnić się, że pracujesz z plikami reprezentującymi stan gałęzi. Jeśli spróbujesz zmienić gałęzie podczas niezatwierdzonych zmian, te zmiany zostaną zastąpione podczas wyewidencjonowania. Ponieważ usługa Git nie chce, aby przypadkowo utraciła zmiany, uniemożliwia to wyewidencjonowania. Dostępne są dwie opcje:

Żądanie ściągnięcia nie może scalić z tym komunikatem: "Nie można scalić automatycznie: jeden z wewnętrznych obiektów git (obiektów blob, drzewa, zatwierdzenia lub tagu) jest zbyt duży, co spowodowało wyjątek TF401022. Możesz spróbować użyć LFS, podzielić scalanie lub duże zatwierdzenie na kilka małych.

Ten problem jest związany z konfliktami scalania w dużych plikach binarnych. Bieżący limit dla plików to 100 MB. Obejście polega na rozwiązaniu konfliktów scalania lokalnie przez scalenie elementu docelowego ze źródłem, rozwiązywanie konfliktów i wypychanie zmian.

Usługa Git LFS (duży magazyn plików) jest zalecana do przechowywania dużych plików binarnych, nie tylko w celu uniknięcia konfliktów, ale także do zarządzania ogólnym rozmiarem repozytorium, co wpływa na czas klonowania i wypychania.

Zrobiłem trochę pracy, ale muszę przełączyć się na coś innego. Jak zapisać moją pracę później bez zatwierdzania zmian?

Jeśli chcesz zapisać zmiany bez ich zatwierdzania, użyj narzędzia Git stash. Stash zapisuje bieżące zmiany etapowe i nieprzygotowane w gałęzi i przywraca gałąź do stanu ostatniego zatwierdzenia. Następnie możesz przełączyć się do innej gałęzi, wykonać swoją pracę, a następnie uruchomić stash apply polecenie , aby przywrócić zmiany.

git stash
Saved working directory and index state WIP on feature1: be26067 updated endpoint docs
HEAD is now at be26067

Po uruchomieniu polecenia [git stash apply], ostatnio wprowadzone zmiany zostaną zastosowane do bieżącej gałęzi. Jeśli występuje konflikt, [stash] przywraca zmiany plików, które nie powodują konfliktu, i tworzy znaczniki konfliktów w plikach, które to robią. W tym przypadku należy ręcznie scalić zmiany.

Gdy skończysz z zawartością, usuń ją za pomocą polecenia [git stash drop]. To polecenie usuwa ostatni zestaw zmian stashed.

Można mieć wiele skrótów, ale zarządzanie nimi wymaga bardziej ręcznego manipulowania, ponieważ trzeba jawnie zastosować i upuszczać skróty. Dowiedz się więcej z dokumentacji usługi Git Stash.

Jak zmienić domyślny edytor narzędzi wiersza polecenia Usługi Git?

Domyślnie usługa Git w wierszu polecenia używa edytora wiersza polecenia podczas monitowania o komunikaty zatwierdzenia, wykonywania rebases i innych zadań, które wymagają wykonania dodatkowych informacji. Domyślny edytor jest skonfigurowany przy użyciu polecenia git config:

> git config core.editor _path_to_editor_ _options_to_editor_

Usługa Git Dla systemu Windows ułatwia ustawianie Notatnika jako edytora:

> git config core.editor notepad

To polecenie umożliwia skonfigurowanie Notatnika systemu Windows w celu edytowania informacji git zgodnie z potrzebami i poprawnego przekazywania tekstu z narzędzia Git do Notatnika. Można również określić

> git config format.commitMessageColumns 72 

Aby zachować kolumny tekstowe w komunikatach zatwierdzenia do preferowanych 72 i zawijania wierszy po osiągnięciu tego limitu znaków w wierszu.

Jak mogę zmienić nazwę użytkownika i wiadomość e-mail wyświetlaną w zatwierdzeniach?

Usługa Git umieszcza informacje o nazwie użytkownika i adresie e-mail wewnątrz każdego zatwierdzenia, a usługa Azure Repos używa tych informacji podczas wyświetlania zatwierdzeń i pracy z żądaniami ściągnięcia. Jeśli pracujesz w wierszu polecenia, możesz zaktualizować nazwę i informacje e-mail wyświetlane przy git config użyciu polecenia :

> git config --global user.email "example-user@example-site.com"
> git config --global user.name "Example User"

Opcja --global ustawia adres e-mail i nazwę uwzględniona w zatwierdzeniach dla wszystkich repozytoriów Git w tym systemie. Jeśli chcesz zmienić ustawienia pojedynczego repozytorium, musisz zmienić katalog, w którym znajduje się repozytorium Git, i uruchomić powyższe polecenia bez flagi --global .

Możesz również zmienić nazwę i ustawienia poczty e-mail z programu Visual Studio. W menu Git wybierz pozycję Ustawienia W oknie dialogowym Opcje wybierz pozycję Ustawienia globalne usługi Git lub Ustawienia>repozytorium Git Ogólne.

Program Visual Studio 2019 w wersji 16.8 lub nowszej zapewnia środowisko kontroli wersji usługi Git przy zachowaniu interfejsu użytkownika programu Git programu Team Explorer . Aby użyć programu Team Explorer, usuń zaznaczenie pozycji Opcje narzędzi>>w wersji zapoznawczej Funkcje>nowego środowiska użytkownika usługi Git na pasku menu. Funkcje usługi Git można wykonywać z dowolnego interfejsu zamiennie.

W programie Team Explorer wybierz pozycję Ustawienia i w obszarze Git wybierz link Ustawienia globalne lub Ustawienia repozytorium.