Team Foundation 버전 제어 명령 사용
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
버전 제어 명령을 사용하여 Visual Studio에서 수행할 수 있는 거의 모든 TFVC(Team Foundation 버전 제어) 작업을 수행할 수 있습니다. 버전 제어 명령을 사용하여 Visual Studio에서 수행할 수 없는 여러 작업을 수행할 수도 있습니다. 명령 프롬프트 또는 스크립트 내에서 버전 제어 명령을 실행하려면 이 도구를 사용합니다 tf.exe
.
명령 실행
Visual Studio 명령 프롬프트를 시작하려면 Windows 시작에서 VS2022 이하 버전 바로 가기에 대한 개발자 명령 프롬프트를 선택합니다.
참고 항목
Visual Studio 2019 이상 버전의 tf.exe
경우 이진 파일은 이전 릴리스 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
와 같이 Visual Studio 설치 경로의 고정된 위치에 더 이상 없습니다. 스크립트에서 사용하는 tf.exe
경우 Visual Studio 설치 경로를 기반으로 파일 경로를 하드 코딩하지 마세요.
대부분의 경우 작업 영역에 매핑된 디렉터리의 컨텍스트에서 버전 제어 명령을 실행합니다. 예를 들어 . $/SiteApp/Main/
c:\\code\\SiteApp\\Main\\
작업 영역에서 모든 항목의 최신 버전을 가져오려면 다음 명령을 사용합니다.
c:\code\SiteApp\Main\SolutionA>tf get
개발 머신 설정 및 작업 영역 관리
작업 영역은 팀 코드베이스의 로컬 복사본입니다. 개발 컴퓨터의 로컬 복사본이므로 작업에서 검사 준비가 될 때까지 코드를 격리하여 개발하고 테스트할 수 있습니다. 다음은 작업 영역을 관리하는 몇 가지 명령입니다.
자세한 내용은 다음 리소스를 참조하세요.
앱 개발
다음 명령을 사용하여 팀과 함께 버전 제어 하에 앱을 개발합니다.
- 명령 추가: 버전 제어에 파일 및 폴더를 추가합니다.
- 체크 아웃(또는 편집) 명령: 파일을 체크 아웃하고 편집할 보류 중인 변경 상태 변경합니다.
- 삭제 명령(Team Foundation 버전 제어): Azure DevOps 서버에서 파일 및 폴더를 제거하고 디스크에서 삭제합니다.
- Get 명령: Azure DevOps Server에서 작업 영역으로 하나 이상의 파일 또는 폴더의 최신 버전 또는 지정된 버전을 가져오거나 다운로드합니다.
- 이름 바꾸기 명령(Team Foundation 버전 제어): 파일 또는 폴더의 이름 또는 경로를 변경합니다.
- 상태 명령: 작업 영역 또는 선반에 있는 파일 및 폴더의 보류 중인 변경 내용에 대한 정보를 표시합니다.
- 실행 취소 명령: 파일 또는 폴더에 대한 보류 중인 변경 내용을 카드 지정합니다.
- 삭제 취소 명령: 이전에 삭제된 항목을 복원합니다.
자세한 내용은 Team Foundation 버전 제어에서 앱 개발을 참조하세요.
작업 일시 중단
여러 가지 이유로 진행 중인 작업의 일부 또는 전부를 따로 둡니다. 작업을 일시 중단 및 다시 시작하고 선반을 관리하려면 다음 명령을 사용합니다.
자세한 내용은 작업 일시 중단 및 선반 관리를 참조하세요.
작업 참여
명령을 checkin
사용하여 코드에서 팀의 코드 베이스로 검사.
- 체크 인 명령: 서버의 파일 또는 폴더에 대한 보류 중인 변경 내용을 확인합니다.
자세한 내용은 팀의 코드베이스에 대한 작업 체크 인을 참조하세요.
파일 관리 및 문제 해결
다음 섹션의 리소스를 사용하여 파일을 관리합니다.
버전 제어 파일 및 폴더 보기 및 관리
- 속성(또는 정보) 명령: 버전 제어의 항목에 대한 정보를 표시합니다.
- Dir 명령: 버전 제어 서버의 내용을 표시합니다.
- destroy 명령(Team Foundation 버전 제어): 버전 제어 파일을 영구적으로 삭제합니다.
- LocalVersions 명령: 작업 영역 항목의 버전을 표시합니다.
자세한 내용은 소스 제어 탐색기를 사용하여 버전 제어에서 파일을 관리합니다.
이전 버전 보기 및 관리
- 변경 집합 명령: 변경 집합 특성을 변경하거나 표시합니다.
- 기록 명령: 파일 또는 폴더의 수정 기록을 표시합니다.
- 레이블 명령(Team Foundation 버전 제어): 파일 또는 폴더에서 레이블을 연결하거나 제거합니다.
- 레이블 명령: 서버에서 사용 중인 레이블에 대한 정보를 표시합니다.
- 롤백 명령(Team Foundation 버전 제어): 변경 집합의 효과를 롤백합니다.
- 레이블 해제 명령: 서버의 기존 레이블에서 항목을 제거합니다.
- 보기 명령: 지정된 버전의 파일을 검색하여 표시합니다.
자세한 내용은 이전 버전 보기 및 관리를 참조 하세요.
폴더 및 파일 비교
- 차이점 명령: 파일과 선반 사이의 차이점을 비교합니다.
- Folderdiff 명령: 두 폴더의 파일 간 차이점을 비교합니다.
자세한 내용은 이전 버전 보기 및 관리를 참조 하세요.
파일 충돌 해결
- 해결 명령: 작업 영역과 서버의 항목 간 충돌을 해결합니다.
자세한 내용은 Team Foundation 버전 제어 충돌 해결을 참조하세요.
버전 제어 잠금 작업
- 잠금 명령: 파일 및 폴더를 잠그거나 잠금 해제합니다.
자세한 내용은 버전 제어 잠금 작업을 참조 하세요.
위험 격리
다음 명령을 사용하여 분기를 사용하여 위험을 격리합니다.
자세한 내용은 분기를 사용하여 Team Foundation 버전 제어 위험 격리를 참조하세요.
버전 제어 관리 등록
다음 명령을 사용하여 버전 제어 시스템을 관리합니다.
자세한 내용은 검사-out 설정 구성을 참조하세요.
버전 제어 명령에 대한 도움말 보기
다음 명령을 사용하여 버전 제어 명령에 대한 자세한 정보를 가져옵니다.
명령 구문 이해
각 명령의 구문은 각 참조 문서의 맨 위에 나타납니다.
필수/선택적 인수
대괄호가 없는 인수는 필수입니다. [대괄호] 명령을 완료하는 데 필요하지 않은 선택적 인수를 나타냅니다. 그러나 일부 선택적 인수에는 옵션을 지정하지 않더라도 명령에 적용되는 기본값이 있습니다.
배타적 인수
옵션을 파이프()|로 구분하는 경우 옵션 중 하나를 지정할 수 있습니다.
축자 및 대체 가능한 인수
대괄호로 묶지 않은 항목은 축자를 포함하는 옵션입니다. 꺾쇠 괄호(< 및 >)로 묶인 항목은 명령을 수행하기 위해 실제 문자로 대체해야 하는 인수입니다.
명령 바로 가기 및 별칭
일부 명령은 바로 가기를 지원합니다. 예를 들어 또는 .을 사용하여 Delete 명령을 tf delete
tf del
호출할 수 있습니다.
예시
예를 들어 Checkout 명령을 고려합니다.
tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]
이 예제에는 다음 인수가 포함됩니다.
<item-spec>
: 이 인수를 검사 항목을 식별하는 항목 사양으로 바꿔야 합니다.- 다음 인수는 선택 사항입니다. 해당 효과를 제공하지 않으면 해당 효과가 명령에 적용되지 않습니다.
/lock:(none|checkin|checkout)
: 옵션을 지정/lock
하지 않으면 시스템에서 기본적으로 사용합니다/lock:none
. 그렇지 않으면 다른 잠금 옵션 중 하나를 지정할 수 있습니다./recursive
: 폴더의 여러 항목을 재귀적으로 검사 하려면 이 옵션을 축자 그대로 지정해야 합니다./login:<username>, <password>
: 명령을 다른 사용자로 실행하려면 옵션을 축자로 지정/login
하고 사용자의 이름으로 바꿔<username>
야 합니다. 필요한 경우 사용자의 암호로 바꿉<password>
다.
명령의 영향을 받는 항목 지정
항목 사양 및 버전 사양을 사용하여 명령의 영향을 받는 항목을 지정할 수 있습니다.
항목 사양 인수를 사용하여 영향을 받는 항목 지정
항목 사양을 사용하여 명령의 영향을 받는 항목을 지정합니다. 클라이언트 컴퓨터 또는 Azure DevOps 서버에서 항목을 지정할 수 있습니다. 와일드카드 문자(예: * ?)를 사용할 수 있습니다.
클라이언트 항목 사양 인수
클라이언트 항목 사양 인수는 다음과 같이 클라이언트 컴퓨터의 항목에 대한 경로를 지정합니다.
- 폴더(예 : c:\code\SiteApp\Main\SolutionA\)입니다.
- 파일(예 : c:\code\SiteApp\Main\SolutionA\Project1\program.cs)
- 여러 파일(예 : c:\code\SiteApp\Main\SolutionA\*.cs)
- \\myshare\code\SiteApp\Main과 같은 UNC(범용 명명 규칙) 경로입니다.
서버 항목 사양 인수
서버 항목 사양 인수는 다음과 같이 Azure DevOps 서버의 항목에 대한 경로를 지정합니다.
- 폴더(예: $/SiteApp/Main/SolutionA).
- 파일(예: $/SiteApp/Main/SolutionA/Project1/program.cs)입니다.
- 여러 파일(예: $/SiteApp/Main/SolutionA/*.cs)
일반적으로 클라이언트 컴퓨터에 없는 항목에 대한 명령을 실행해야 하는 경우 서버 항목 사양 인수를 사용합니다. 예를 들어 개발 머신에서 작업 중이라고 가정해 보겠습니다. 작업하지 않는 프로젝트 컬렉션에 있는 일부 항목에 대한 수정 기록 데이터를 가져와야 하는 경우 다음 명령을 사용할 수 있습니다.
c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive
/noprompt
여러 항목 사양 인수
일부 명령의 경우 다음과 같이 여러 항목 사양 인수를 지정할 수 있습니다.
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
이 명령은 program.cs 및 program2.c를 검사.
버전 사양 인수를 사용하여 영향을 받는 항목 버전 지정
버전 사양을 사용하여 명령의 영향을 받는 항목의 버전을 지정합니다. 버전 사양을 제공하려면 다음을 수행할 수 있습니다.
/version
옵션을 사용합니다(예: .)/version:C44
.예를 들어
program1.cs;C44
세미콜론을 사용하여 항목 사양에 버전 사양을 추가합니다.
기록 명령 또는 Difference 명령을 사용하는 경우 버전을 타일로 구분하여 버전 범위를 지정할 수 있습니다. 예를 들면 다음과 같습니다.
c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022
버전 사양을 지정하려면 다음 구문을 사용합니다.
Type | 구문 | 설명 | 예제 | 결과 |
---|---|---|---|---|
집합 | [C]<version-number> |
변경 집합 번호에 따라 항목을 지정합니다. 범위에 있는 항목이 지정된 변경 집합에서 수정되지 않은 경우 시스템은 지정된 변경 집합 이전에 발생한 항목의 최신 버전을 사용합니다. 숫자만 지정하면 생략 C 할 수 있습니다. |
tf get readme.txt /v:C8 tf get readme.txt /v:8 tf get readme.txt;8 |
변경 집합 8에서 readme.txt 수정된 경우 예제 코드는 해당 버전의 파일을 가져옵니다. 그렇지 않으면 버전 8 이전의 readme.txt 최신 버전을 가져옵니다. |
Label | L<label> |
레이블이 적용되는 항목을 지정합니다. | tf get readme.txt;LJulyHotFix tf get /version:LLastKnownGood |
첫 번째 예제에서는 julyHotFix 레이블이 지정된 readme.txt 버전을 가져옵니다. 두 번째는 LastKnownGood라는 레이블이 지정된 변경 집합이 생성되었을 때 작업 영역에서 레이블이 지정된 모든 항목의 버전을 검색하고 레이블이 지정되지 않은 항목을 삭제합니다. 자동화된 빌드 프로세스의 일부로 두 번째 예제의 코드를 사용할 수 있습니다. |
날짜 및 시간 | D<yyyy-mm-ddTxx:xx> 또는 D<mm/dd/yyyy> 또는 모든 .NET Framework 지원 형식입니다. 또는 로컬 컴퓨터에서 지원되는 날짜 형식입니다. |
특정 시간에 지정된 날짜에 만들어진 변경 집합을 지정합니다. | tf get /version:D2022-03-22 tf get /version:D2022-03-22T09:00 |
첫 번째 예제에서는 2022년 3월 22일 자정에 존재했던 코드베이스와 일치하도록 작업 영역을 업데이트합니다. 두 번째는 2022년 3월 22일 오전 9:00에 존재했던 코드베이스와 일치하도록 작업 영역을 업데이트합니다. .NET Framework에서 지원하는 날짜 및 시간 형식에 대한 자세한 내용은 DateTime 및 표준 날짜 및 시간 형식 문자열을 참조하세요. |
현재 작업 영역 | W |
작업 영역에서 버전을 지정합니다. | - | - |
지정된 작업 영역 | W<workspace-name>; <workspace-owner> |
지정된 작업 영역의 버전을 지정합니다. | tf get /version:WResolveRIConflicts;PatW |
이 예제에서는 소유하는 작업 영역의 ResolveRIConflicts 버전을 지정합니다 PatW . |
팁 | T |
최신 버전을 지정합니다. | - | - |
옵션을 사용하여 명령이 작동하는 방식 수정
몇 가지 일반적인 옵션을 사용하여 명령이 작동하는 방식을 수정할 수 있습니다.
이 /noprompt
옵션을 사용하여 데이터 입력 요청을 표시하지 않으며 출력 데이터를 리디렉션합니다.
이 /noprompt
옵션을 사용하여 데이터 입력에 대한 요청을 표시하지 않으며 출력 데이터를 명령 프롬프트 창으로 리디렉션합니다. 이 옵션은 다음과 같은 스크립트에서 버전 제어 명령을 사용해야 하는 경우에 유용할 수 있습니다.
- 명령은 사용자의 개입 없이 진행됩니다.
- 구문 분석 또는 캡처와 같은 작업을 스크립트에서 수행할 수 있습니다.
이 옵션을 사용하는 경우 시스템은 다음을 수행합니다.
입력에 대한 모든 요청을 표시하지 않습니다.
출력 데이터를 명령 프롬프트로 리디렉션합니다. 예를 들어 기록 명령과 함께 이 옵션을 사용할 수 있습니다. 데이터는 기록 창 대신 명령 프롬프트 창에 표시됩니다.
이 /login
옵션을 사용하여 자격 증명 지정
이 /login
옵션을 사용하여 명령을 실행할 Azure DevOps 서버 사용자 계정을 지정합니다. 이 옵션은 다른 팀 구성원의 컴퓨터에서 작업할 때 유용할 수 있습니다.
예를 들어 팀 구성원의 개발 머신에서 작업 중이라고 가정해 보겠습니다. 잠금 명령을 사용하여 이전에 잠근 파일의 잠금을 해제합니다.
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>
명령 프롬프트에 암호를 표시하지 않으려면 암호 없이 명령을 입력할 수 있습니다.
c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>
이 명령을 입력하면 시스템에서 입력을 마스킹하는 대화 상자에 암호를 입력하라는 메시지를 표시합니다.
잠금을 /lock
적용하거나 제거하는 옵션을 사용합니다.
Important
모범 사례로, 이 옵션을 재량에 따라 사용합니다 /lock
. 팀 동료에게 항목을 잠그는 이유와 잠금을 제거할 계획을 알려 줍니다.
/lock
추가 또는 편집과 같은 다른 명령을 실행하는 동시에 잠금을 적용하거나 제거하는 옵션을 사용합니다.
/lock:(none|checkin|checkout)
이 /lock
명령은 다음 옵션을 사용합니다.
None
: 항목에 잠금이 없습니다. 잠금이 이미 있는 경우 제거됩니다.Checkin
또는Checkout
: 잠금이 적용됩니다. 자세한 내용은 잠금 유형 이해(Understand lock types)를 참조 하세요.
참고 항목
경우에 따라 잠금 작업이 실패할 수 있습니다.
- 다른 사용자가 지정된 항목을 잠근 경우 잠금 작업이 실패합니다.
- 지정된 항목에 대한 보류 중인 변경 내용이 이미 있는 경우 시스템에서 이 스위치를 무시합니다. 이 경우 잠금 명령을 사용하여 항목에 대한 잠금을 변경해야 합니다.
옵션 바로 가기 사용
다음 옵션을 축약할 수 있습니다.
옵션
옵션 별칭
/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
종료 코드 이해
버전 제어 명령은 다음 종료 코드를 반환합니다.
종료 코드
정의
0
성공.
1
부분 성공. 적어도 뭔가, 또는 아마도 모든, 성공하지 못했습니다.
2
인식할 수 없는 명령입니다.
100
아무것도 성공하지 못했습니다.
예를 들어 다음 명령을 실행한다고 가정합니다.
c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c
검사하려는 파일 중 하나가 서버에 없는 경우 이 명령은 부분적인 성공을 나타내기 위해 1을 반환합니다.