Używanie poleceń kontroli wersji programu Team Foundation

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Visual Studio 2022 | Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015 | Visual Studio 2013

Za pomocą poleceń kontroli wersji można wykonywać prawie wszystkie zadania, które można wykonać w Visual Studio, a także kilka zadań, których nie można wykonać w Visual Studio. Za pomocą narzędzia tf.exe można uruchamiać polecenia kontroli wersji z poziomu wiersza polecenia lub w skrypcie.

Uruchamianie polecenia

Aby uruchomić wiersz polecenia Visual Studio, w Windows Start wybierz wiersz polecenia dla deweloperów dla programu VS2019 lub starszej wersji skrótu.

Uwaga

W przypadku wersji Visual Studio 2017 i nowszych plik binarnytf.exe nie znajduje się już w stałej lokalizacji w ścieżce instalacji Visual Studio tak jak w poprzednich wersjach. (na przykład C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE). Skrypty używające tf.exe nie powinny trwale kodować ścieżki do pliku na podstawie ścieżki instalacji 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:

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

Konfigurowanie maszyny deweloperów i zarządzanie obszarami roboczymi

Obszar roboczy to lokalna kopia bazy kodu twojego zespołu. Ponieważ jest to lokalna kopia na maszynie deweloperów, 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:

Zobacz również: Konfigurowanie Kontrola wersji serwera Team Foundation na maszynie deweloperów, Tworzenie i praca z obszarami roboczymi

Opracowywanie aplikacji

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

Zobacz również: Tworzenie aplikacji w kontroli wersji programu Team Foundation

Wstrzymywanie pracy

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

Zobacz również: Wstrzymaj pracę i zarządzaj zestawami półek.

Współtworzenie pracy

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

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

Zobacz również: Zaewidencjonuj swoją pracę w bazie kodu zespołu

Zarządzanie plikami i rozwiązywanie problemów

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

Zobacz również: Zarządzanie plikami pod kontrolą wersji za pomocą Eksploratora kontroli kodu źródłowego

Wyświetlanie poprzednich wersji i zarządzanie nimi

Zobacz również: Wyświetlanie poprzednich wersji i zarządzanie nimi

Porównanie folderów i plików

Zobacz również: Wyświetlanie poprzednich wersji i zarządzanie nimi

Rozwiązywanie konfliktów plików

Zobacz również: Rozwiązywanie konfliktów Kontrola wersji serwera Team Foundation.

Praca z blokadami kontroli wersji

Zobacz również: Praca z blokadami kontroli wersji.

Izolowanie ryzyka

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

Zobacz również: Używanie gałęzi do izolowania ryzyka w Kontrola wersji serwera Team Foundation.

Administrowanie kontrolą wersji

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

Zobacz również: Konfigurowanie ustawień wyewidencjonowywanie.

Uzyskaj pomoc w poleceniach kontroli wersji

Aby uzyskać więcej informacji na temat poleceń kontroli wersji, użyj następujących poleceń:

Omówienie składni poleceń

Składnia każdego polecenia pojawia się w górnej części każdego tematu referencyjnego.

Wymagane i opcjonalne argumenty

Argumenty inne niż nawiasy są wymagane. [Nawiasy] wskazują 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

Pogrubione elementy to opcje, które obejmują dosłowne. Kursywa to argumenty, które należy zastąpić rzeczywistymi znakami, aby wykonać polecenie.

Skróty poleceń i aliasy

Niektóre polecenia obsługują skróty. Na przykład można wywołać polecenie Delete za pomocą polecenia tf delete lub tf del.

Przykład

Na przykład polecenie Wyewidencjonuj:

tf checkout [/lock:( none|checkin|checkout)] [/recursive] itemspec [/login: username,[ password]]

Przejrzyjmy argumenty z tego przykładu:

  • itemspec: musisz zamienić ten argument na elementpec , który określa wyewidencjonowane elementy.

  • /lock:(none|checkin|checkout): Nie musisz określać / lock opcji. Jeśli nie określisz go, system domyślnie określa /lock:none. W przeciwnym razie można określić jedną z opcji blokady.

  • Następujące argumenty są opcjonalne i jeśli ich nie podasz, żaden z ich efektów nie ma zastosowania do polecenia :

    • /rekursive: 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 opcji dosłowne, zastąpić nazwę użytkownika nazwą użytkownika, a jeśli to konieczne, możesz podać hasło.

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

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

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

Aby określić elementy, których dotyczy polecenie, należy użyć obiektu itemspec (specyfikacja elementu). Elementy można określić na komputerze klienckim lub na Team Foundation Server. Można użyć symboli wieloznacznych, takich jak \* i ?.

Argumenty elementu klienta

Argument itemspec klienta określa ścieżkę do elementów na komputerze klienckim, takich jak folder (na przykład c:\code\SiteApp\Main\SolutionA\) plik (na przykład c:\code\SiteApp\Main\SolutionA\Project1\program.cs lub wiele plików (na przykład c:\code\SiteApp\Main\SolutionA\*.cs. Można również określić ścieżki UNC, takie jak \\myshare\code\SiteApp\Main.

Argumenty elementu serwera

Argument itemspec serwera określa ścieżkę do elementów w Team Foundation Server, takich jak folder (na przykład $/SiteApp/Main/SolutionA) plik (na przykład $/SiteApp/Main/SolutionA/SolutionA/SolutionA/Project1/program.cs lub wiele plików (na przykład $/SiteApp/Main/SolutionA/*.cs.

Zazwyczaj argumenty itemspec serwera są używane, gdy potrzebne jest uruchomienie polecenia na elementach, a nie na maszynie klienckiej. Na przykład pracujesz na maszynie deweloperów i musisz pobrać dane historii poprawek dotyczące niektórych elementów znajdujących się w kolekcji projektów, w których nie pracujesz:

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

Wiele argumentów elementu

W przypadku niektórych poleceń można określić wiele argumentów elementów . Na przykład:

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

Wyewidencjonuj program.cs i program2.c.

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

Aby określić wersję elementów, na które ma wpływ polecenie, należy użyć elementu versionspec (specyfikacja wersji). Aby podać element versionspec , możesz:

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

  • Dołącz element versionspec do elementu ze średnikiem. Na przykład: program1.cs; C44.

W przypadku używania polecenia Historia lub Polecenia różnicy 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/2012~D4/24/2012

Użyj następującej składni, aby określić element versionspec.

Typ

Składnia

Opis


Changeset

[C] N

Określa elementy na podstawie numeru grupy zmian. Jeśli element, który znajduje się w zakresie, nie został zmodyfikowany w określonym zestawie zmian, system przyjmuje najnowszą wersję elementu, który wystąpił przed określonym zestawem zmian.

Porada

Można pominąć C, jeśli określisz tylko liczbę. Przykłady

c:\code\SiteApp\Main>tf get readme.txt /v:C8

-- lub --

c:\code\SiteApp\Main>tf get readme.txt /v:8

— lub —

c:\code\SiteApp\Main>tf get readme.txt;8

Jeśli readme.txt został zmodyfikowany w zestawie zmian 8, pobiera ten plik w tej wersji. W przeciwnym razie pobiera najnowszą wersję readme.txt przed wersją 8.

Etykieta

Llabel

Określa elementy, do których zastosowano etykietę .

Przykłady

c:\code\SiteApp\Main>tf get readme.txt;LJulyHotFix

Pobiera wersję readme.txt, która została oznaczona etykietą JulyHotFix.

c:\code\SiteApp\Main>tf get /version:LLastKnownGood

Pobiera wersję wszystkich elementów oznaczonych etykietą (i usuwa te elementy, które nie są oznaczone) w obszarze roboczym, ponieważ istniały, gdy zestaw zmian oznaczony jako LastKnownGood został utworzony, na przykład w ramach zautomatyzowanego procesu kompilacji.

Data i godzina

Dyyyy-mm-ddTxx:xx

-lub-

Dmm/dd/rrrr

-lub-

Dowolny format obsługiwany przez .NET Framework.

-lub-

Dowolny z formatów dat obsługiwanych na komputerze lokalnym.

Określa zestaw zmian utworzony w określonym dniu i o określonej godzinie.

Przykłady

c:\code\SiteApp\Main>tf get /version:D2004-03-22

Aktualizuje obszar roboczy tak, aby był zgodny z bazą kodu, tak jak istniał w dniu 22.03.2004 o 00:00 (północ).

c:\code\SiteApp\Main>tf get /version:D2004-03-22T09:00

Aktualizuje obszar roboczy tak, aby był zgodny z bazą kodu, ponieważ istniał w dniu 22.03.2004 o godzinie 09:00 (9:00).

Aby uzyskać więcej informacji na temat formatów daty i godziny obsługiwanych przez .NET Framework, zobacz Ciągi formatu daty i godziny daty i godziny daty i godziny.

Obszar roboczy (bieżący)

W

Określa wersję w obszarze roboczym.

Obszar roboczy (określony)

Wworkspacename; właściciel obszaru roboczego

Określa wersję w określonym obszarze roboczym.

Na przykład: WResolveRIConflicts; PeterW

Porada

T

Określa najnowszą wersję.

Modyfikowanie sposobu działania polecenia przy użyciu opcji

Aby zmodyfikować sposób działania poleceń, można użyć niektórych typowych opcji.

Użyj opcji /noprompt, aby pominąć żądania dotyczące danych wejściowych i przekierować dane wyjściowe do okna wiersza polecenia

Użyj opcji /noprompt , aby pominąć żądania dotyczące danych wejściowych i przekierować dane wyjściowe do okna wiersza polecenia. Ta opcja może być przydatna, gdy trzeba użyć poleceń kontroli wersji w skrypcie, ponieważ polecenie jest kontynuowane bez interwencji użytkownika, a 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 kontynuować cofanie zmian.

    • Windows i okna dialogowe nie są prezentowane. Można na przykład użyć tej opcji z poleceniem Checkin. Zamiast wyświetlać okno dialogowe Zaewidencjonuj , aby potwierdzić opcje (które elementy chcesz zaewidencjonować lub które elementy robocze do skojarzenia), system przechodzi do ewidencjonowania bez potwierdzenia.

  • Przekierowuje dane wyjściowe do wiersza polecenia. Można na przykład użyć tej opcji z poleceniem Historia. Dane są wyświetlane w oknie wiersza polecenia zamiast okna Historia.

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

Użyj opcji /login, aby określić konto użytkownika Team Foundation Server do uruchomienia polecenia. Ta opcja może być przydatna podczas pracy na maszynie innego członka zespołu.

Na przykład Julia pracuje z Peterem na swojej maszynie deweloperów. Używa polecenia Blokada , aby odblokować plik, który zablokowała wcześniej:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI,JuliaPassword

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

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

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

Użyj opcji /lock, aby zastosować lub usunąć blokadę

Ważne

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

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

/lock:(none|checkin|checkout)
  • Brak: brak blokady jest umieszczany na elemencie. Jeśli blokada jest już w miejscu, zostanie usunięta.

  • Wyewidencjonuj lub wyewidencjonuj: stosuje blokadę. 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.
  • System ignoruje ten przełącznik, jeśli istnieje już oczekująca zmiana elementu. W takim przypadku należy użyć polecenia blokady , aby zmienić blokadę elementu.

Używanie skrótów opcji

Możesz 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

/rekursive

-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

Częściowy sukces; oznacza to, że co najmniej coś lub ewentualnie wszystko nie powiodło się.

2

Nierozpoznane polecenie.

100

Nic się nie powiodło.

Na przykład:

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 1 , aby wskazać częściowy sukces.