TFVC(Team Foundation 버전 제어) 명령이 Git 워크플로에 매핑되는 방법 이해

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Git을 채택하고, TFVC 작업에 익숙하고, Git에 매핑하는 방법을 궁금하신가요? 둘 다 강력하고 성숙한 소스 제어 시스템입니다. 그러나 익숙해진 일반적인 작업을 서로 매핑하는 것은 혼란스러운 환경일 수 있습니다.

이 문서에서는 제품 설명서에 잘 설명되어 있으므로 Git 명령을 자세히 살펴보지는 않지만 일반적인 만들기인 복제 -> 분기> - 변경> -> 커밋> - 푸시 워크플로를 진행하면서 올바른 결정을 내리는 데 도움이 되는 예제를 보여 줍니다.

새 리포지토리를 만들어 시작

각 프로젝트는 동일한 프로젝트에서 TFVC 및 Git 리포지토리를 호스트하여 하나의 TFVC 및 하나 이상의 Git 리포지토리를 만들 수 있습니다.

Azure Repos에서 새 Git 리포지토리 만들기

리포지토리가 만들어지면 신속하게 시작하는 단계별 지침이 표시됩니다.

Azure Repos에서 새 Git 리포지토리 시작

명령 페이지의 끝에서 ReadMe 파일 만들기를 클릭하여 리포지토리 컨텍스트를 제공하고 일부 기록을 만듭니다.

Azure Repos에서 새 Git 리포지토리를 초기화하는 추가 정보 만들기

작업 영역 만들기 및 최신 설정

TFVC 리포지토리에 처음으로 연결할 때 일반적으로 작업 영역을 만들고 최신 코드를 가져옵니다. 그렇다면 Git에서 시작하려면 어떻게 해야 할까요?

TFVC clone 의 작업 영역과 마찬가지로 컴퓨터의 폴더에 대한 Git 리포지토리입니다. 복제는 리포지토리의 모든 내용과 기록을 로컬 컴퓨터에 다운로드합니다. 복제된 리포지토리가 있으면 거의 모든 작업이 로컬로 수행됩니다. 중앙 집중식 리포지토리의 전체 백업으로 오프라인으로 작업할 수 있습니다.

git clone https://dev.azure.com/demo-fabrikam/Fabrikam/_git/Mapping-TFVC-actions-to-Git

리포지토리당 한 번만 복제하면 되지만 TFVC 작업 영역과 마찬가지로 진행 중인 작업을 격리하기 위해 여러 클론을 가질 수 있습니다. 그러나 분기는 일반적으로 변경 내용을 격리하는 더 나은 방법입니다.

분기 만들기

Git을 사용하면 항상 분기에서 작업하며 기본적으로 분기에서 작업합니다main . 여러 로컬 분기를 만드는 것이 좋습니다. 이 프로세스는 몇 초가 걸리며 분기 간을 원활하게 컨텍스트 전환하고 격리된 상태로 작업할 수 있게 해줍니다. 경로로 범위가 지정된 TFVC 분기와 달리 Git 분기는 리포지토리 범위가 지정됩니다. 변경 내용을 공유할 준비가 되면 경량이거나 로컬 전용이거나 다른 사용자와 공유할 수 있습니다.

격리된 상태로 작업해야 하거나, 작업을 일시 중단하거나, 새로운 기능에 집중해야 하거나, Git 끌어오기 요청을 수행하려는 경우 분기를 고려합니다.

TFVC 사용자로서 몇 번 반복합니다.

  • 분기하는 것이 좋습니다!
  • Git 분기는 저렴하고 빠르강력합니다!
  • Git에서는 로컬 분기를 사용하는 것이 좋습니다.
  • 필요에 따라 중앙 집중식 리포지토리에 로컬 분기를 게시합니다.
  • 변경하기 전에 항상 분기 컨텍스트를 확인합니다.
  • 사용자/별칭/branchname과 같은 일반적인 규칙을 사용하여 분기 이름을 지정합니다(예: users/doris/newfeature).

francis/demo-feature라는 로컬 토픽 분기를 만들고 전환합니다. 먼저 실행 git status 하여 시작할 올바른 분기에 있는지 확인하는 것이 좋습니다.

git checkout -b francis/demo-feature

Windows 명령줄에서 새 Git 분기 만들기

파일을 추가하여 변경

TFVC 환경과 마찬가지로 작업 폴더의 새 파일은 리포지토리의 일부가 아닙니다. TFVC에서 작업을 수행하는 데 동의어인 명령을 사용하여 새 파일을 git add 스테이 add Items to Folder 징합니다.

git add <file>

또는

git add --all

미리 구운 샘플을 사용하면 로컬 리포지토리에 포함되어 스테이징된 13개의 새 파일이 있습니다.

보류 중인 변경 내용 보기

현재 작업 환경에 어떤 변화가 있는지 궁금하신가요? 이전과 마찬가지로 Visual Studio IDE의 Changes Git status 명령 또는 보기에는 작업 트리의 변경 내용이 표시됩니다.

git status

Git 상태를 사용하여 스테이징된 변경 내용 표시

변경 내용을 체크 인하고 로컬로 커밋

TFVC에서는 보류 중인 변경 내용을 서버에 보내는 체크 인 변경 내용을 공유합니다. Git 프로세스는 약간 다릅니다. 먼저 로컬 리포지토리에 커밋하여 커밋 개체(예: 변경 집합)를 만든 다음, 해당 변경 내용을 서버로 보내도록 푸시합니다.

TFVC에서와 유사하게 변경 내용을 사용하여 git commit로컬 리포지토리에 Checkin Pending Changes 커밋합니다. 주요 차이점은 원격 리포지토리 대신 로컬 리포지토리에 변경 내용을 커밋한다는 git commit 것입니다.

git commit

서버/원격 리포지토리를 사용하여 변경 내용 체크 인

먼저 커밋된 모든 변경 내용을 포함하는 로컬 francis/demo-기능 분기 원격 서버에 게시해야 합니다.

git push --set-upstream origin francis/demo-feature

로컬의 추가 업데이트를 원격 리포지토리 동기화하려면 .를 사용하여 git push변경 내용을 푸시해야 합니다. git 명령 또는 Visual Studio IDE를 사용하는 권장 방법은 다음과 같습니다.

  • fetch 콘텐츠를 다운로드하고 다른 사용자의 들어오는 변경 내용을 미리 봅니다.
  • pull 다른 사용자의 변경 내용을 다운로드한 다음 병합합니다.
  • push 로컬 변경 내용을 공유합니다.

기록 보기

커밋을 보려면 방금 만든 로컬 기록을 검토할 수 있습니다.

압축 기록의 경우 다음을 사용합니다.

git log --oneline

자세한 내용은 다음을 사용합니다.

git log

Git 로그를 사용하여 분기 기록 검토

위에 표시된 것처럼 작성자, git log 전자 메일, 작성된 날짜 및 커밋 SHA-1 체크섬을 나열합니다. TFVC 사용자는 이 옵션을 사용하여 --stat 파일 이름 및 통계 변경과 같은 추가 정보를 포함할 수 있습니다.

Azure DevOps Services 웹 포털을 사용하여 중앙 집중식 리포지토리의 기록을 볼 수도 있습니다.

Azure DevOps Services 웹 포털에서 CODE 기록 또는 CODE > > 탐색기 > 기록을 선택합니다.

Azure Repos에서 분기 기록 보기

이 시점에서 일반적인 TFVC 작업을 기반으로 복제 -> 분기 -> 변경 ->> 커밋 -> 푸시 워크플로 만들기를 성공적으로 탐색했습니다.

또한 끌어오기 요청을 실행하고, 이 시점에서 서버/원격 리포지토리에 변경 내용을 게시하고 스테이징할 수도 있습니다.

기타 작업

분기 전환

Git을 사용하는 경우 컴퓨터에서 별도의 폴더 및 위치로 전환하여 분기를 변경하지 않습니다. 전체 작업 디렉터리를 선택한 분기 또는 커밋과 일치하도록 하여 checkout컨텍스트를 변경합니다. 빠르고 간단!

명령줄

git checkout <branch>

로컬 리포지토리에 있는 분기를 잊어버린 경우 기본 분기와 알려진 분기를 나열하는 데 사용합니다 git branch .

어떤 분기에서 작업하고 있는지 유의하세요! Git에서 여러 분기로 작업하는 경우 동일한 작업 디렉터리에서 분기를 전환합니다. 분기 간 전환은 빠른 작업이며 항상 올바른 분기에 있는지 확인하는 것이 좋습니다.

최신 버전 가져오기

업데이트를 받으려는 데는 여러 가지 이유가 있습니다. 예를 들어 컨텍스트를 다른 프로젝트로 전환해야 하는 경우 최신 버전의 코드베이스를 사용하여 개발 머신을 새로 고칩니다.

명령줄

git pull

또는

git fetch

git merge FETCH_HEAD

항상 최신 버전을 가져와서 로컬에서 병합 충돌 해결합니다.

로컬 변경 실행 취소

로컬 리포지토리에서 만든 모든 수정 버전을 되돌리고 작업 환경을 원격 리포지토리 최신 버전으로 다시 설정해야 하는 타당한 이유가 있을 수 있습니다.

명령줄

git reset --hard HEAD

git pull origin

git clean -xdf

이 시나리오는 TFVC에서 옵션과 Overwrite all files if the local version matches the specified version 함께 Overwrite writable files that are not checked out 수행하는 것과 Get > Latest Version 동의어입니다.

또는 유효성이 검사된 복사본을 만든 후 로컬 리포지토리를 수동으로 삭제한 다음 clone 리포지토리를 다시 삭제할 수 있습니다.

Git 사용자가 사용할 수 있는 더 많은 작업과 옵션이 있습니다. 다음은 추가 읽기를 위한 몇 가지 유용한 참조 사이트입니다.

  • 여기서 다루는 Git 명령은 git 설명서를 참조하세요 .
  • (a) Git, Perplexed 가이드처럼 생각하십시오.
  • 조슈아 웨너에 의해, Git와 함께 (거의) 아무것도 취소하는 방법

Q&A

동기화는 어떻습니까?

"Visual Studio IDE Commit and Sync 가 이 모든 작업을 마술 그대로 수행하지 않나요?"라고 스스로에게 물어볼 수 있습니다.

Git>커밋 또는 숨김을 선택하여 Git 변경 내용을 엽니다. 모두 커밋 드롭다운 메뉴를 선택한 다음, 모두 커밋 및 동기화를 선택합니다.

또는 팀 탐색기에서 커밋 드롭다운 메뉴를 선택한 다음 명령 및 동기화를 선택합니다.

팀 탐색기에서 커밋 및 동기화

마법과 함께 책임이 온다! 많은 사용자가 로컬 기록을 엉망으로 만들고 현재 커밋 위에 병합 커밋을 추가할 수 있으므로 싫어 sync 합니다. 상태가 잘못되면 현재 IDE에서 다시 설정 지원이 없으므로 명령줄로 되돌려야 합니다.

저자: ALM의 제시 후윙, 마틴 힌셸우드, 마이크 푸리, 윌리 쇼브 | DevOps 레인저스. 여기에서 연결합니다.

(c) 2015 Microsoft Corporation. All rights reserved. 이 문서는 "있는 그대로" 제공됩니다. URL 및 기타 인터넷 웹 사이트 참조를 포함하여 이 문서에 표현된 정보 및 보기는 예고 없이 변경될 수 있습니다. 이 문서의 사용으로 발생하는 위험은 귀하의 책임입니다.

이 문서는 어떠한 Microsoft 제품에 포함된 어떠한 지적 자산에 대한 법적 권한도 귀하에게 제공하지 않습니다. 이 문서는 내부 참조용으로 복사 및 사용할 수 있습니다.