Git로 코드 공유
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Git 리포지토리를 사용할 때 Azure DevOps의 다른 사용자와 코드를 공유합니다.
필수 조건
Azure DevOps에 조직 및 프로젝트가 있어야 합니다. 프로젝트를 만들 때 Azure DevOps는 리포지토리에 빈 리포지토리를 자동으로 만듭니다.
1. Git 명령줄 도구 설치
다음 Git 명령줄 도구 중 하나를 설치합니다.
- Windows 및 Git 자격 증명 관리자용 Git입니다.
- macOS 또는 Linux용 Git입니다. macOS 및 Linux의 경우 SSH 인증을 구성하는 것이 좋습니다.
2. 리포지토리를 컴퓨터에 복제
Git 리포지토리를 사용하려면 컴퓨터에 복제하여 리포지토리의 전체 로컬 복사본을 만듭니다. 코드가 여러 위치 중 하나에 있을 수 있습니다.
시나리오에 적용할 수 있는 다음 단계를 완료합니다.
- 아직 코드가 없는 경우 먼저 프로젝트에서 새 Git 리포지토리를 만든 다음, 다음 단계를 완료합니다.
- 코드가 GitHub 리포지토리 또는 다른 Azure 리포지토리 인스턴스와 같은 다른 Git 리포지토리에 있는 경우 새 또는 기존 빈 Git 리포지토리로 가져온 다음 다음 단계를 완료합니다.
- 코드가 로컬 컴퓨터에 있고 아직 버전 제어에 없는 경우 프로젝트에 새 Git 리포지토리를 만들거나 기존 리포지토리에 코드를 추가합니다.
웹 브라우저에서 조직의 팀 프로젝트를 열고 Repos>Files를 선택합니다.
복제를 선택합니다.
URL을 복사 합니다.
Git 명령 창을 엽니다(Windows용 Git의 Git Bash). 리포지토리의 코드를 컴퓨터에 저장하려는 폴더로 이동하고 실행한 다음 이전 단계의 복제 URL에서 복사한 경로를 실행
git clone
합니다. 다음 예제를 참조하십시오.git clone https://FabrikamFiber01@dev.azure.com/FabrikamFiber01/FabrikamFiber01-01/_git/FabrikamFiber01-01
디렉터리를 복제한 리포지토리로 전환합니다.
cd fabrikam-web
분기에서 작동하려면 이 명령 창을 열어 두세요.
3. 분기에서 작업
Git 분기는 프로젝트에서 수행 중인 다른 작업과 변경 내용을 격리합니다. 작업하는 모든 기능 또는 수정에 새 분기를 사용하는 Git 워크플로를 사용하는 것이 좋습니다. 예제에서는 분기 users/jamal/feature1
를 사용합니다.
명령을 사용하여 분기를 만듭니다
branch
.git branch users/jamal/feature1
이 명령은 Git에서 새 분기에 대한 참조를 만듭니다. 또한 Git에서 분기에 커밋을 추가할 때 변경 기록을 유지할 수 있도록 부모 커밋에 대한 포인터를 다시 만듭니다.
이전에 복제된 리포지토리를 사용하는 경우 새 분기를 만들기 전에 올바른 분기(
git checkout main
)를 체크 아웃하고 최신 상태git pull origin main
인지 확인합니다.해당 분기로 전환하는 데 사용합니다
checkout
.git checkout users/jamal/feature1
Git은 체크 아웃된 분기의 최신 커밋과 일치하도록 컴퓨터의 파일을 변경합니다.
팁
명령줄에서 분기를 만들 때 분기는 현재 체크 아웃된 분기를 기반으로 합니다. 리포지토리를 복제하면 기본 분기(일반적으로
main
)가 체크 아웃됩니다. 복제했기 때문에 로컬 복사본에main
최신 변경 내용이 있습니다.git checkout main git pull origin main git branch users/jamal/feature1 git checkout users/jamal/feature1
이전 예제의 처음 세 명령을 다음 명령으로 바꿀 수 있습니다. 이 명령은 최신
main
분기를 기반으로 명명된users/jamal/feature1
새 분기를 만듭니다.git pull origin main:users/jamal/feature1
이전 섹션에서 사용한 Git Bash 창으로 다시 전환합니다. 다음 명령을 실행하여 주 분기를 기반으로 새 분기를 만들고 체크 아웃합니다.
git pull origin main:users/jamal/feature1 git checkout feature1
4. 코드 작업
다음 단계에서는 컴퓨터의 파일을 변경하고, 변경 내용을 로컬로 커밋한 다음, 서버에 저장된 리포지토리에 커밋을 푸시합니다.
리포지토리를 복제한 컴퓨터의 폴더로 이동하여 선택한 편집기에서 파일을 열고
README.md
일부 내용을 변경합니다. 그런 다음 파일을 저장 하고 닫습니다.Git 명령 창에서 다음 명령을 입력하여 디렉터리로 이동합니다
contoso-demo
.cd contoso-demo
Git 명령 창에 다음 명령을 입력하여 변경 내용을 커밋합니다.
git add . git commit -m "My first commit"
이
git add .
명령은 새 파일이나 변경된 파일을 스테이징하고git commit -m
지정된 커밋 메시지 사용하여 커밋을 만듭니다.잘못된 분기에 대한 변경 내용을 커밋하지 않도록 커밋하기 전에 작업 중인 분기를 확인합니다. Git은 항상 현재 로컬 분기에 새 커밋을 추가합니다.
서버의 Git 리포지토리에 변경 내용을 푸시합니다. Git 명령 창에 다음 명령을 입력합니다.
git push origin users/jamal/feature1
이제 코드가 이름이 지정된 users/jamal/feature1
분기의 원격 리포지토리 공유됩니다. 작업 분기에서 분기로 main
코드를 병합하려면 끌어오기 요청을 사용합니다.
5. 변경 내용을 끌어오기 요청과 병합
끌어오기 요청은 코드 검토와 병합을 단일 협업 프로세스로 결합합니다. 분기에서 버그 또는 새 기능 수정을 완료한 후 새 끌어오기 요청을 만듭니다. 변경 내용을 검토하고 투표할 수 있도록 팀 구성원을 끌어오기 요청에 추가합니다. 끌어오기 요청을 사용하여 진행 중인 작업을 검토하고 변경 내용에 대한 피드백을 빨리 받아볼 수 있습니다. 언제든지 끌어오기 요청을 포기할 수 있으므로 변경 내용을 병합할 필요가 없습니다.
다음 예제에서는 끌어오기 요청을 만들고 완료하는 기본 단계를 보여줍니다.
웹 브라우저에서 조직의 팀 프로젝트를 열고 Repos>Files를 선택합니다. 복제 URL을 받은 후 브라우저를 열어 두면 다시 전환할 수 있습니다.
파일 창의 오른쪽 위 모서리에서 끌어오기 요청 만들기를 선택합니다. 지금 사용자/jamal/feature1을 업데이트한 것과 같은 메시지가 표시되지 않으면 브라우저를 새로 고칩니다.
새 끌어오기 요청은 분기를 기본 분기 병합하도록 구성됩니다. 이 예제에서는 다음과 같습니다
main
. 제목과 설명은 커밋 메시지 미리 채워집니다.검토자를 추가하고 작업 항목을 끌어오기 요청에 연결할 수 있습니다.
새 끌어오기 요청 창 아래쪽의 끌어오기 요청에 포함된 파일을 검토할 수 있습니다.
만들기를 실행합니다.
개요 탭에서 끌어오기 요청의 세부 정보를 봅니다. 다른 탭에서 끌어오기 요청에서 변경된 파일, 업데이트 및 커밋을 볼 수도 있습니다.
완료를 선택하여 끌어오기 요청을 완료하는 프로세스를 시작합니다.
병합 완료를 선택하여 끌어오기 요청을 완료하고 코드를
main
분기에 병합합니다.참고 항목
이 예제에서는 끌어오기 요청을 만들고 완료하는 기본 단계를 보여줍니다. 자세한 내용은 끌어오기 요청 만들기, 보기 및 관리를 참조 하세요.
이제 변경 내용이 분기에 병합 main
되고 users/jamal/feature1
원격 리포지토리 분기가 삭제됩니다.
기록 보기
웹 포털로 다시 전환하고 코드 페이지에서 기록을 선택하여 새 커밋을 봅니다.
파일 탭으로 전환하고 추가 정보 파일을 선택하여 변경 내용을 봅니다.
정리
분기의 로컬 복사본을 삭제하려면 Git Bash 명령 프롬프트로 다시 전환하고 다음 명령을 실행합니다.
git checkout main
git pull origin main
git branch -d users/jamal/feature1
이 작업은 다음 작업을 완료합니다.
- 이
git checkout main
명령은 분기로 전환합니다main
. - 이
git pull origin main
명령은 변경 내용 및 병합된 사실을users/jamal/feature1
포함하여 주 분기의 최신 버전의 코드를 끌어냅니다. - 이
git branch -d users/jamal/feature1
명령은 해당 분기의 로컬 복사본을 삭제합니다.