Używanie poleceń kontroli wersji programu Team Foundation

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

Visual Studio 2019 | Visual Studio 2022

Polecenia kontroli wersji umożliwiają wykonywanie niemal wszystkich zadań Kontrola wersji serwera Team Foundation (TFVC), które można wykonać w programie Visual Studio. Możesz również użyć poleceń kontroli wersji, aby wykonać kilka zadań, których nie można wykonać w programie Visual Studio. Aby uruchomić polecenia kontroli wersji z wiersza polecenia lub w skrypcie, użyj tf.exe narzędzia .

Uruchamianie polecenia

Aby uruchomić wiersz polecenia programu Visual Studio, w menu Start systemu Windows wybierz skrót wiersza polecenia dewelopera dla programu VS2022 lub starszej wersji.

Uwaga

W przypadku programu Visual Studio 2019 i nowszych wersji tf.exe plik binarny nie znajduje się już w stałej lokalizacji w ścieżce instalacji programu Visual Studio, tak jak w niektórych poprzednich wersjach, na przykład C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE. Jeśli skrypt używa tf.exepolecenia , nie należy kodować ścieżki do pliku na podstawie ścieżki instalacji programu Visual Studio.

W większości przypadków uruchamiasz polecenie kontroli wersji w kontekście katalogu mapowanego w obszarze roboczym. Na przykład $/SiteApp/Main/ jest mapowany na c:\\code\\SiteApp\\Main\\. Aby uzyskać najnowszą wersję wszystkich elementów w obszarze roboczym, użyj następującego polecenia:

c:\code\SiteApp\Main\SolutionA>tf get

Konfigurowanie maszyny dewelopera i zarządzanie obszarami roboczymi

Obszar roboczy to lokalna kopia bazy kodu twojego zespołu. Ponieważ jest to lokalna kopia na maszynie deweloperskiej, możesz opracowywać i testować kod w izolacji do momentu, aż wszystko będzie gotowe do zaewidencjonowania pracy. Oto kilka poleceń do zarządzania obszarem roboczym:

Aby uzyskać więcej informacji, zobacz następujące zasoby:

Opracowywanie aplikacji

Użyj tych poleceń, aby opracować aplikację pod kontrolą wersji z zespołem:

Aby uzyskać więcej informacji, zobacz Tworzenie aplikacji w kontroli wersji programu Team Foundation.

Wstrzymywanie pracy

Z różnych powodów czasami trzeba odłożyć niektóre lub wszystkie prace w toku. Aby wstrzymać i wznowić pracę oraz zarządzać zestawami półek, użyj następujących poleceń:

Aby uzyskać więcej informacji, zobacz Wstrzymywanie pracy i zarządzanie zestawami półek.

Współtworzenie pracy

checkin Użyj polecenia , aby zaewidencjonować kod w bazie kodu zespołu:

  • Polecenie Checkin: sprawdza oczekujące zmiany w plikach lub folderach na serwerze.

Aby uzyskać więcej informacji, zobacz Zaewidencjonuj swoją pracę w bazie kodu zespołu.

Zarządzanie plikami i rozwiązywanie problemów

Użyj zasobów w poniższych sekcjach, aby zarządzać plikami.

Wyświetlanie plików i folderów kontroli wersji oraz zarządzanie nimi

Aby uzyskać więcej informacji, zobacz Używanie Eksploratora kontroli źródła do zarządzania plikami pod kontrolą wersji.

Wyświetlanie poprzednich wersji i zarządzanie nimi

Aby uzyskać więcej informacji, zobacz Wyświetlanie poprzednich wersji i zarządzanie nimi.

Porównywanie folderów i plików

  • Polecenie różnicy: porównuje różnice między plikami i zestawami półek.
  • Folderdiff polecenie: porównuje różnice między plikami w dwóch folderach.

Aby uzyskać więcej informacji, zobacz Wyświetlanie poprzednich wersji i zarządzanie nimi.

Rozwiązywanie konfliktów plików

  • Rozwiąż polecenie: rozwiązuje konflikty między elementami w obszarze roboczym i na serwerze.

Aby uzyskać więcej informacji, zobacz Rozwiązywanie konfliktów Kontrola wersji serwera Team Foundation.

Praca z blokadami kontroli wersji

Aby uzyskać więcej informacji, zobacz Praca z blokadami kontroli wersji.

Izolowanie ryzyka

Użyj następujących poleceń, aby odizolować ryzyko przy użyciu gałęzi:

Aby uzyskać więcej informacji, zobacz Używanie gałęzi do izolowania ryzyka w Kontrola wersji serwera Team Foundation.

Administracja kontrola wersji

Aby zarządzać systemem kontroli wersji, użyj następujących poleceń:

Aby uzyskać więcej informacji, zobacz Konfigurowanie ustawień wyewidencjonowywanie.

Uzyskiwanie pomocy dotyczącej poleceń kontroli wersji

Użyj następujących poleceń, aby uzyskać szczegółowe informacje o poleceniach kontroli wersji:

Omówienie składni poleceń

Składnia każdego polecenia jest wyświetlana w górnej części każdego artykułu referencyjnego.

Argumenty wymagane i opcjonalne

Argumenty bez nawiasów są wymagane. [Nawiasy kwadratowe] wskazuje opcjonalne argumenty, które nie są wymagane do wykonania polecenia. Jednak niektóre opcjonalne argumenty mają wartości domyślne, które są stosowane do polecenia, nawet jeśli nie określisz opcji.

Argumenty wykluczające

Gdy opcje są oddzielone potokiem (|), można określić jedną z opcji.

Argumenty dosłowne i zamienialne

Elementy, które nie są ujęte w nawiasy, to opcje, które zawierają dosłowne. Elementy ujęte w nawiasy kątowe (< i >) są argumentami, które należy zastąpić rzeczywistymi znakami, aby wykonać polecenie.

Skróty poleceń i aliasy

Niektóre polecenia obsługują skróty. Możesz na przykład wywołać polecenie Usuń za pomocą tf delete polecenia lub tf del.

Przykład

Rozważmy na przykład polecenie Wyewidencjonuj:

tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]

W tym przykładzie przedstawiono następujące argumenty:

  • <item-spec>: Należy zastąpić ten argument specyfikacją elementu, która identyfikuje wyewidencjonowanie elementów.
  • Następujące argumenty są opcjonalne. Jeśli ich nie podasz, żaden z ich efektów nie ma zastosowania do polecenia :
    • /lock:(none|checkin|checkout): Jeśli nie określisz /lock opcji, system używa /lock:none domyślnie. W przeciwnym razie można określić jedną z pozostałych opcji blokady.
    • /recursive: Jeśli chcesz rekursywnie wyewidencjonować wiele elementów w folderze, musisz określić tę opcję dosłownie.
    • /login:<username>, <password>: Jeśli chcesz uruchomić polecenie jako inny użytkownik, musisz określić /login opcję dosłowną i zastąpić <username> nazwą użytkownika. W razie potrzeby zastąp <password> ciąg hasłem użytkownika.

Określanie elementów, których dotyczy polecenie

Możesz użyć specyfikacji elementów i specyfikacji wersji, aby określić, które elementy mają wpływ na polecenie.

Użyj argumentu specyfikacji elementu, aby określić elementy, których dotyczy problem

Specyfikacja elementu służy do określania elementów, na które ma wpływ polecenie. Elementy można określić na komputerze klienckim lub na serwerze usługi Azure DevOps. Można użyć symboli wieloznacznych, takich jak * i ?.

Argumenty specyfikacji elementu klienta

Argument specyfikacji elementu klienta określa ścieżkę do elementów na maszynie klienckiej, na przykład:

  • Folder, na przykład c:\code\SiteApp\Main\SolutionA\.
  • Plik, na przykład c:\code\SiteApp\Main\SolutionA\Project1\program.cs.
  • Wiele plików, na przykład c:\code\SiteApp\Main\SolutionA\*.cs.
  • Ścieżka uniwersalnej konwencji nazewnictwa (UNC), taka jak \\myshare\code\SiteApp\Main.

Argumenty specyfikacji elementu serwera

Argument specyfikacji elementu serwera określa ścieżkę do elementów na serwerze usługi Azure DevOps, na przykład:

  • Folder, na przykład $/SiteApp/Main/SolutionA.
  • Plik, na przykład $/SiteApp/Main/SolutionA/Project1/program.cs.
  • Wiele plików, na przykład $/SiteApp/Main/SolutionA/*.cs.

Zazwyczaj używasz argumentów specyfikacji elementu serwera, gdy trzeba uruchomić polecenie na elementach, które nie znajdują się na maszynie klienckiej. Załóżmy na przykład, że pracujesz na maszynie dewelopera. Jeśli musisz uzyskać dane historii poprawek dotyczące niektórych elementów znajdujących się w kolekcji projektów, w której nie pracujesz, możesz użyć następującego polecenia:

c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive  
/noprompt 

Argumenty specyfikacji wielu elementów

W przypadku niektórych poleceń można określić wiele argumentów specyfikacji elementu, na przykład:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

To polecenie sprawdza program.cs i program2.c.

Użyj argumentu specyfikacji wersji, aby określić wersje elementów, których dotyczy problem

Używasz specyfikacji wersji, aby określić wersję elementów, na które ma wpływ polecenie. Aby podać specyfikację wersji, możesz:

  • /version Użyj opcji , na przykład /version:C44.

  • Dołącz specyfikację wersji do specyfikacji elementu średnikiem, na przykład program1.cs;C44.

W przypadku użycia polecenia Historia lub polecenia Różnica można określić zakres wersji, oddzielając wersje tyldą, na przykład:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022

Użyj następującej składni, aby określić specyfikację wersji:

Typ Składnia opis Przykłady Result
Changeset [C]<version-number> Określa elementy na podstawie numeru zestawu zmian. Jeśli element w zakresie nie został zmodyfikowany w określonym zestawie zmian, system przyjmuje najnowszą wersję elementu, który wystąpił przed określonym zestawem zmian. Jeśli określisz tylko liczbę, możesz pominąć C . tf get readme.txt /v:C8

tf get readme.txt /v:8

tf get readme.txt;8
Jeśli readme.txt został zmodyfikowany w zestawie zmian 8, przykładowy kod pobiera wersję pliku. W przeciwnym razie pobiera najnowszą wersję readme.txt przed wersją 8.
Etykieta L<label> Określa elementy, do których jest stosowana etykieta. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
Pierwszy przykład pobiera wersję readme.txt z etykietą JulyHotFix. Drugi pobiera wersję wszystkich oznaczonych etykietami elementów (i usuwa te elementy, które nie są oznaczone etykietą) w obszarze roboczym, ponieważ istniały, gdy zestaw zmian oznaczony etykietą LastKnownGood został utworzony. Możesz użyć kodu w drugim przykładzie w ramach zautomatyzowanego procesu kompilacji.
Data i godzina D<yyyy-mm-ddTxx:xx>

lub

D<mm/dd/yyyy>

lub

Dowolny format obsługiwany przez program .NET Framework.

lub

Dowolny z formatów dat obsługiwanych na komputerze lokalnym.
Określa zestaw zmian, który został utworzony w określonej dacie w określonym czasie. tf get /version:D2022-03-22

tf get /version:D2022-03-22T09:00
Pierwszy przykład aktualizuje obszar roboczy tak, aby był zgodny z bazą kodu, ponieważ istniał 22 marca 2022 r. o północy. Drugi aktualizuje obszar roboczy tak, aby był zgodny z bazą kodu, ponieważ istniał 22 marca 2022 r. o godzinie 9:00. Aby uzyskać więcej informacji na temat formatów daty i godziny obsługiwanych przez program .NET Framework, zobacz Ciągi formatu daty i godziny daty i godziny w formacie Daty i godziny w formacie Datyi godziny.
Bieżący obszar roboczy W Określa wersję w obszarze roboczym. - -
Określony obszar roboczy W<workspace-name>; <workspace-owner> Określa wersję w określonym obszarze roboczym. tf get /version:WResolveRIConflicts;PatW Przykład określa wersję w obszarze roboczym, który PatW jest właścicielemResolveRIConflicts.
Napiwek T Określa najnowszą wersję. - -

Używanie opcji do modyfikowania sposobu działania polecenia

Możesz użyć niektórych typowych opcji, aby zmodyfikować sposób działania polecenia.

/noprompt Użyj opcji pomijania żądań wejściowych danych i przekierowywania danych wyjściowych

/noprompt Użyj opcji , aby pominąć żądania danych wejściowych i przekierować dane wyjściowe do okna wiersza polecenia. Ta opcja może być przydatna, gdy musisz użyć poleceń kontroli wersji w skrycie, w którym:

  • Polecenie jest kontynuowane bez interwencji użytkownika.
  • Dane są dostępne dla skryptu do wykonywania operacji, takich jak analizowanie lub przechwytywanie.

W przypadku korzystania z tej opcji system:

  • Pomija wszystkie żądania dotyczące danych wejściowych:

    • Pytania nie są zadawane w oknie wiersza polecenia. Jeśli na przykład używasz polecenia Cofnij z tą opcją, system nie wyświetla monitu o potwierdzenie, czy chcesz cofnąć zmiany.
    • Okna i okna dialogowe nie są wyświetlane. Można na przykład użyć tej opcji za pomocą polecenia Checkin. System nie wyświetla okna dialogowego Synchronizacja w celu potwierdzenia elementów i skojarzonych elementów roboczych. Zamiast tego system sprawdza elementy bez potwierdzenia.
  • Przekierowuje dane wyjściowe do wiersza polecenia. Można na przykład użyć tej opcji za pomocą polecenia Historia. Dane są wyświetlane w oknie wiersza polecenia zamiast okna Historia.

/login Użyj opcji , aby określić poświadczenia

/login Użyj opcji , aby określić konto użytkownika serwera usługi Azure DevOps w celu uruchomienia polecenia. Ta opcja może być przydatna podczas pracy na maszynie innego członka zespołu.

Załóżmy na przykład, że pracujesz na maszynie deweloperskiej członka zespołu. Użyj polecenia Zablokuj, aby odblokować wcześniej zablokowany plik:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>

Jeśli chcesz uniknąć wyświetlania hasła w wierszu polecenia, możesz wprowadzić polecenie bez hasła:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>

Po wprowadzeniu tego polecenia system wyświetli monit o wprowadzenie hasła w oknie dialogowym, które maskuje dane wejściowe.

/lock Użyj opcji stosowania lub usuwania blokady

Ważne

Najlepszym rozwiązaniem jest użycie /lock opcji według uznania. Poinformuj kolegów z zespołu, dlaczego blokujesz element i kiedy planujesz usunąć blokadę.

/lock Użyj opcji , aby zastosować lub usunąć blokadę w tym samym czasie, w którym uruchamiasz inne polecenie, takie jak Dodaj lub Edytuj.

/lock:(none|checkin|checkout)

Polecenie /lock używa następujących opcji:

  • None: na elemencie nie jest umieszczana blokada. Jeśli blokada jest już w miejscu, zostanie usunięta.

  • Checkin lub Checkout: Zastosowano blokadę. Aby uzyskać więcej informacji, zobacz Omówienie typów blokad.

Uwaga

W kilku przypadkach operacja blokowania może zakończyć się niepowodzeniem:

  • Jeśli inni użytkownicy zablokowali dowolny z określonych elementów, operacja blokowania zakończy się niepowodzeniem.
  • Jeśli istnieje już oczekująca zmiana określonego elementu, system ignoruje ten przełącznik. W takim przypadku należy użyć polecenia Blokada, aby zmienić blokadę elementu.

Używanie skrótów opcji

Można skrócić następujące opcje.

Opcja

Alias opcji

/comment

-C

/computer

-M

/delete

-D

/force

-P

/format

-F

/help

-?, -H

/lock

-K

/login

-Y

/newname

-N

/noprompt

-I

/owner

-O

/recursive

-R

/server

-S

/slotmode

-X

/template

-T

/user

-U

/version

-V

/workspace

-W

Omówienie kodów zakończenia

Polecenia kontroli wersji zwracają następujące kody zakończenia:

Kod zakończenia

Definicja

0

Powodzenie.

1

Powodzenie częściowe. Przynajmniej coś, lub ewentualnie wszystko, nie powiodło się.

2

Nierozpoznane polecenie.

100

Nic się nie powiodło.

Załóżmy na przykład, że uruchamiasz następujące polecenie:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Jeśli jeden z plików, które próbujesz wyewidencjonować, nie istnieje na serwerze, polecenie zwraca wartość 1 , aby wskazać częściowy sukces.