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.exe
polecenia , 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:
- Konfigurowanie Kontrola wersji serwera Team Foundation na maszynie dewelopera
- Tworzenie i praca z obszarami roboczymi
Opracowywanie aplikacji
Użyj tych poleceń, aby opracować aplikację pod kontrolą wersji z zespołem:
- Dodaj polecenie: dodaje pliki i foldery do kontroli wersji.
- Polecenie Wyewidencjonuj (lub Edytuj): wyewidencjonuj plik i zmienia stan oczekującej zmiany na edycję.
- Usuń polecenie (Kontrola wersji serwera Team Foundation): usuwa pliki i foldery z serwera Usługi Azure DevOps i usuwa je z dysku.
- Pobierz polecenie: pobiera (pobiera) najnowszą wersję lub określoną wersję jednego lub więcej plików lub folderów z usługi Azure DevOps Server do obszaru roboczego.
- Zmień nazwę polecenia (Kontrola wersji serwera Team Foundation): Zmienia nazwę lub ścieżkę pliku lub folderu.
- Polecenie stanu: wyświetla informacje o oczekujących zmianach w plikach i folderach w obszarach roboczych lub w zestawie półek.
- Cofnij polecenie: Odrzuca określone oczekujące zmiany w plikach lub folderach.
- Cofanie usuwania polecenia: przywraca elementy, które zostały wcześniej usunięte.
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
- Polecenie Właściwości (lub informacje): wyświetla informacje o elementach w kontroli wersji.
- Polecenie dir: wyświetla zawartość serwera kontroli wersji.
- Destroy command (Kontrola wersji serwera Team Foundation): Trwale usuwa pliki kontrolowane przez wersję.
- Polecenie LocalVersions: wyświetla wersje elementów obszaru roboczego.
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
- Polecenie zestawu zmian: zmienia lub wyświetla atrybuty zestawu zmian.
- Polecenie Historia: wyświetla historię poprawek plików lub folderów.
- Polecenie etykiety (Kontrola wersji serwera Team Foundation): Dołącza lub usuwa etykiety z plików lub folderów.
- Polecenie Etykiety: wyświetla informacje o etykietach używanych na serwerze.
- Polecenie wycofywania (Kontrola wersji serwera Team Foundation): Cofa efekty zmian.
- Polecenie unlabel: usuwa element z istniejącej etykiety na serwerze.
- Wyświetl polecenie: pobiera określoną wersję pliku i wyświetla go.
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
- Zablokuj polecenie: blokuje lub odblokuje pliki i foldery.
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 Daty i 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
lubCheckout
: 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.