다음을 통해 공유


Team Foundation 버전 제어 명령 참조

버전 제어 명령을 사용하여 Visual Studio에서 수행할 수 있는 거의 모든 작업뿐 아니라 Visual Studio에서 수행할 수 없는 여러 작업도 수행할 수 있습니다. tf.exe 도구를 사용하여 명령 프롬프트 또는 스크립트 내에서 버전 제어 명령을 실행할 수 있습니다.

수행할 작업

  • 명령 실행

    • 개발 컴퓨터 설정

    • 응용 프로그램 개발

    • 작업 일시 중단

    • 작업 참여

    • 파일 관리 및 문제 해결

    • 위험 격리

  • 명령 구문 이해

  • 명령의 영향을 받는 항목 지정

    • itemspec 인수를 사용하여 영향을 받는 항목 지정

    • versionspec 인수를 사용하여 영향을 받는 항목 버전 지정

  • 옵션을 사용하여 명령 작동 방식 수정

    • /noprompt 옵션을 사용하여 데이터 입력 요청을 표시하지 않고 출력 데이터를 명령 프롬프트 창으로 리디렉션

    • /login 옵션을 사용하여 명령 실행 시 자격 증명 지정

    • /lock 옵션을 사용하여 잠금 적용 또는 제거

    • 옵션 바로 가기 사용

  • 종료 코드 이해

명령 실행

Visual Studio 명령 프롬프트를 시작하려면 Windows 시작에서 Microsoft Visual Studio 2012, Visual Studio Tools를 차례로 선택하고 명령 프롬프트 바로 가기 중 하나를 선택합니다.

대부분의 경우에는 작업 영역에 매핑된 디렉터리의 컨텍스트에서 버전 제어 명령을 실행합니다. 예를 들어 $/SiteApp/Main/ 명령은 c:\code\SiteApp\Main\ 디렉터리에 매핑됩니다. 작업 영역에 있는 모든 항목의 최신 버전을 가져오려면 다음 명령을 실행합니다.

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

참고

현재는 일부 항목을 다시 게시하고 있지 않지만이러한 항목의 Visual Studio 2010 버전은 확인할 수 있습니다.

개발 컴퓨터 설정 및 작업 영역 관리

작업 영역은 팀 코드베이스의 로컬 복사본이며, 개발 컴퓨터의 로컬 복사본이므로 작업을 체크 인할 준비가 될 때까지 격리된 상태에서 코드를 개발하고 테스트할 수 있습니다. 작업 영역을 관리하는 몇 가지 명령은 다음과 같습니다.

참고 항목: 개발 컴퓨터에 Team Foundation 버전 제어 설정, 작업 영역 만들기 및 사용

응용 프로그램 개발

다음 명령을 사용하여 버전 제어가 적용되는 앱을 팀과 함께 개발할 수 있습니다.

참고 항목: Team Foundation 버전 제어에서 응용 프로그램 개발

작업 일시 중단

다양한 이유로 진행 중인 작업의 일부 또는 전부를 따로 유지할 필요가 있습니다. 작업을 일시 중단 및 다시 시작하고 보류 집합을 관리하려면 다음 명령을 사용합니다.

참고 항목: 작업 일시 중단 및 보류 집합 관리.

작업 참여

팀 코드베이스에 코드를 체크 인하는 방법은 다음과 같습니다.

  • Checkin 명령
    보류 중인 변경 내용을 서버의 폴더나 파일에 체크 인합니다.

참고 항목: 팀의 코드베이스에 작업 체크 인

파일 관리 및 문제 해결

위험 격리

다음 명령을 사용하여 분기를 통해 위험을 격리합니다.

참고 항목: Team Foundation 버전 제어에서 분기를 사용하여 위험 격리.

버전 제어 관리

다음 명령을 사용하여 버전 제어 시스템을 관리합니다.

참고 항목: Team Foundation 버전 제어 관리(Visual Studio 2010)

버전 제어 명령에 대한 도움말 확인

다음 명령을 사용하여 버전 제어 명령에 대한 자세한 내용을 확인합니다.

명령 구문 이해

각 명령의 구문은 각 참조 항목 위쪽에 표시됩니다.

필수/선택적 인수

괄호가 없는 인수는 필수입니다. **[Brackets]**는 명령을 완료하는 데 반드시 필요하지는 않은 선택적 인수를 나타냅니다. 그러나 옵션을 지정하지 않아도 명령에 기본값이 적용되는 선택적 인수도 있습니다.

단독 인수

여러 옵션이 파이프(|)로 구분되는 경우에는 해당 옵션 중 하나를 지정할 수 있습니다.

축자 및 대체 가능 인수

굵게 표시된 항목은 축자를 포함할 수 있는 옵션입니다. 기울임꼴로 표시된 항목은 명령을 수행하려면 실제 문자로 교체해야 하는 인수입니다.

명령 바로 가기 및 별칭

일부 명령은 바로 가기를 지원합니다. 예를 들어 삭제 명령tf delete 또는 tf del을 사용하여 호출할 수 있습니다.

예제

아래 체크 아웃 명령을 예로 살펴보겠습니다.

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

이 예의 인수는 다음과 같습니다.

  • itemspec: 이 인수는 체크 아웃할 항목을 지정하는 itemspec으로 바꿔야 합니다.

  • /lock:(none|checkin|checkout): /lock 옵션은 지정하지 않아도 됩니다. 해당 옵션을 지정하지 않으면 시스템에서 기본적으로 /lock:none이 지정됩니다. 그렇지 않으면 잠금 옵션 중 하나를 지정할 수 있습니다.

  • 다음 인수는 선택적 항목이며 입력하지 않으면 명령에 적용되지 않습니다.

    • /recursive: 폴더의 여러 항목을 재귀적으로 체크 아웃하려면 이 옵션 축자를 지정해야 합니다.

    • /login:username,password: 명령을 다른 사용자로 실행하려면 /login 옵션 축자를 지정하고 username은 해당 사용자의 이름으로 바꿔야 합니다. 그리고 필요한 경우에는 암호를 입력할 수 있습니다.

명령의 영향을 받는 항목 지정

itemspec 및 versionspec을 사용하여 명령의 영향을 받는 항목을 지정할 수 있습니다.

itemspec 인수를 사용하여 영향을 받는 항목 지정

itemspec(항목 사양)를 사용하여 명령의 영향을 받는 항목을 지정합니다. 항목은 클라이언트 컴퓨터나 Team Foundation Server에서 지정할 수 있습니다. *, ? 등의 와일드카드를 사용할 수 있습니다.

클라이언트 itemspec 인수

클라이언트 itemspec 인수는 폴더(예: c:\code\SiteApp\Main\SolutionA\), 파일(예: c:\code\SiteApp\Main\SolutionA\Project1\program.cs 또는 여러 파일(예: c:\code\SiteApp\Main\SolutionA\*.cs)과 같은 클라이언트 컴퓨터의 항목에 대한 경로를 지정합니다. \\myshare\code\SiteApp\Main 등의 UNC 경로를 지정할 수도 있습니다.

서버 itemspec 인수

서버 itemspec 인수는 폴더(예: $/SiteApp/Main/SolutionA), 파일(예: $/SiteApp/Main/SolutionA/Project1/program.cs 또는 여러 파일(예: $/SiteApp/Main/SolutionA/*.cs)과 같은 Team Foundation Server의 항목에 대한 경로를 지정합니다.

일반적으로 클라이언트 컴퓨터에 없는 항목에 대해 명령을 실행해야 할 때 서버 itemspec 인수를 사용합니다. 개발 컴퓨터에서 작업 중인데 현재 사용 중이지 않은 팀 프로젝트 컬렉션의 일부 항목에 대한 수정 기록 데이터를 확인해야 하는 경우를 예로 들 수 있습니다.

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

여러 itemspec 인수

여러 itemspec 인수를 지정할 수 있는 명령도 있습니다. 예를 들면 다음과 같습니다.

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

program.cs 및 program2.c를 체크 아웃합니다.

versionspec 인수를 사용하여 영향을 받는 항목 버전 지정

versionspec(버전 사양)을 사용하여 명령의 영향을 받는 항목의 버전을 지정합니다. versionspec은 다음과 같이 입력할 수 있습니다.

  • /version 옵션을 사용합니다. 예: /version:C44

  • versionspec을 세미콜론으로 구분하여 itemspec에 추가합니다. 예: program1.cs;C44

History 명령 또는 Difference Command을 사용할 때는 버전을 물결표(~)로 구분하여 버전 범위를 지정할 수 있습니다. 예를 들면 다음과 같습니다.

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

versionspec을 지정하려면 다음 구문을 사용합니다.

형식

구문

설명

변경 집합

[C]n

변경 집합 번호를 기준으로 항목을 지정합니다. 범위 내에 있는 항목이 지정한 변경 집합에서 수정되지 않은 경우에 시스템에서는 지정한 변경 집합 전에 적용된 항목의 최신 버전을 가져옵니다.

숫자만 지정하는 경우에는 C를 생략할 수 있습니다.

예제

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

-- 또는 --

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

-- 또는 --

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

변경 집합 8에서 readme.txt가 수정된 경우 해당 파일 버전을 가져옵니다. 그렇지 않으면 버전 8 이전의 최신 readme.txt 버전을 가져옵니다.

레이블

Llabel

label이 적용된 항목을 지정합니다.

예제

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

레이블이 JulyHotFix인 readme.txt 버전을 가져옵니다.

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

자동화된 빌드 프로세스 등의 일부분으로 레이블이 LastKnownGood인 변경 집합이 작성되었을 때의 상태대로 작업 영역에서 레이블이 지정된 모든 항목 버전을 검색하고 레이블이 지정되지 않은 항목은 삭제합니다.

날짜 및 시간

Dyyyy-mm-ddTxx:xx

또는

Dmm/dd/yyyy

또는

모든 .NET Framework 지원 형식입니다.

또는

로컬 컴퓨터에서 지원되는 모든 날짜 형식입니다.

지정한 날짜와 시간에 작성된 변경 집합을 지정합니다.

예제

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

2004년 3월 22일 00:00(자정)의 코드베이스와 일치하도록 작업 영역을 업데이트합니다.

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

2004년 3월 22일 09:00(오전 9시)의 코드베이스와 일치하도록 작업 영역을 업데이트합니다.

.NET Framework 지원 날짜 및 시간 형식에 대한 자세한 내용은 DateTime표준 날짜 및 시간 서식 문자열을 참조하세요.

작업 영역(현재)

W

작업 영역의 버전을 지정합니다.

작업 영역(지정됨)

Wworkspacename; workspaceowner

지정된 작업 영역의 버전을 지정합니다.

예를 들면 WResolveRIConflicts;PeterW 같은 형식입니다.

T

최신 버전을 지정합니다.

옵션을 사용하여 명령 작동 방식 수정

일부 명령 옵션을 사용하여 명령 작동 방식을 수정할 수 있습니다.

/noprompt 옵션을 사용하여 데이터 입력 요청을 표시하지 않고 출력 데이터를 명령 프롬프트 창으로 리디렉션

/noprompt 옵션을 사용하면 데이터 입력 요청을 표시하지 않고 출력 데이터를 명령 프롬프트 창으로 리디렉션할 수 있습니다. 명령이 사용자의 개입 없이 자동으로 실행되므로 스크립트에서 버전 제어 명령을 사용해야 하며, 해당 스크립트가 구문 분석, 캡처 등의 작업을 수행하기 위한 데이터를 사용할 수 있는 경우에는 이 옵션이 유용할 수 있습니다.

이 옵션을 사용할 때 시스템은 다음 작업을 수행합니다.

  • 모든 입력 요청을 표시하지 않습니다.

    • 명령 프롬프트 창에 질문이 표시되지 않습니다. 예를 들어 Undo 명령에서 이 옵션을 사용하는 경우 변경 내용 실행 취소를 진행할지 확인하는 메시지가 표시되지 않습니다.

    • 창과 대화 상자가 표시되지 않습니다. Checkin 명령에서 이 옵션을 사용하는 경우를 예로 들 수 있습니다. 이 경우 옵션(체크 인할 항목 또는 연결할 작업 항목)을 확인하라는 체크 인 대화 상자가 표시되는 대신 확인 없이 체크 인이 진행됩니다.

  • 명령 프롬프트로 출력 데이터를 리디렉션합니다. History 명령에서 이 옵션을 사용하는 경우를 예로 들 수 있습니다. 이 경우에는 기록 창이 아닌 명령 프롬프트 창에 데이터가 표시됩니다.

/login 옵션을 사용하여 명령 실행 시 자격 증명 지정

명령을 실행할 Team Foundation Server 사용자 계정을 지정하려면 /login 옵션을 사용합니다. 이 옵션은 다른 팀 멤버의 컴퓨터에서 작업할 때 유용할 수 있습니다.

Julia가 Peter의 개발 컴퓨터에서 함께 작업을 하는 경우를 예로 들어 보겠습니다. Julia는 아래의 잠금 명령을 사용하여 이전에 잠근 파일의 잠금을 해제합니다.

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

이 경우 Julia는 명령 프롬프트에 암호가 표시되지 않도록 암호를 포함하지 않고 다음 명령을 입력할 수 있습니다.

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

이 명령을 입력하면 시스템에서는 입력이 마스킹되는 대화 상자에서 암호를 입력하라는 메시지가 표시됩니다.

/lock 옵션을 사용하여 잠금 적용 또는 제거

중요

/lock 옵션은 신중하게 사용하고 항목을 잠그는 이유와 잠금을 제거할 시기에 대해 팀 동료에게 알리는 것이 좋습니다.

추가 또는 편집 등의 다른 명령을 실행함과 동시에 잠금을 적용하거나 제거하려면 /lock 옵션을 사용합니다.

/lock:(none|checkin|checkout)
  • None: 항목에 잠금이 적용되지 않습니다. 이미 잠겨 있는 항목의 경우 잠금이 제거됩니다.

  • Checkin 또는 Checkout: 잠금을 적용합니다. 잠금 형식 이해을 참조하십시오.

참고

드물지만 잠금 작업이 실패하는 경우도 있습니다.

  • 다른 사용자가 지정한 항목을 잠근 경우 잠금 작업은 실패합니다.

  • 항목에 대한 보류 중인 변경 내용이 이미 있으면 시스템에서 이 스위치를 무시합니다.이러한 경우에는 Lock Command을 사용하여 항목의 잠금을 변경해야 합니다.

옵션 바로 가기 사용

다음 옵션은 약어로 표시할 수 있습니다.

옵션

옵션 별칭

/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을 반환합니다.