Skip to main content

Azure DevOps와 GitHub의 주요 차이점

리포지토리 액세스, 인증 및 끌어오기 요청과 같은 핵심 워크플로는 Azure DevOps에서 GitHub로 이동한 후 다릅니다.

Azure DevOps에서 GitHub로 마이그레이션한 조직의 구성원인 경우 이 가이드에서는 마이그레이션을 최대한 원활하게 하기 위해 워크플로의 변경 내용을 설명합니다.

구조

Azure DevOps에서 리포지토리는 팀 프로젝트 내에 중첩되므로 환경의 구조는 다음과 같습니다.

  • 조직
    • 팀 프로젝트
      • 리포지토리
    • 팀 프로젝트
      • 리포지토리

팀 프로젝트로부터 사용 권한과 가시성이 흐릅니다.

GitHub은(는) 다르게 구조화되어 있습니다. 리포지토리는 조직 내에서 직접 중첩되며 팀도 포함됩니다.

  • 엔터프라이즈 계정
    • 조직
      • 팀들
      • 리포지토리
    • 조직
      • 팀들
      • 리포지토리

사용 권한 및 표시 유형은 조직 멤버 자격, 팀 멤버 자격 및 개별 권한의 조합에 따라 결정됩니다.

Azure DevOps에서 리포지토리를 그룹화하는 데 사용되는 팀 프로젝트의 개념은 GitHub에 존재하지 않으며GitHub에서 조직을 팀 프로젝트에 해당하는 것으로 취급하는 것은 권장되지 않습니다.

GitHub에서 마이그레이션된 각 조직에는 오랫동안 구성되지 않은 리포지토리 목록이 있지만 조직 구성원 팀을 통해 액세스 및 권한을 부여하여 조직의 리포지토리를 훨씬 쉽게 탐색할 수 있습니다.

인증, 권한 및 팀

GitHub에 인증하는 방법에는 두 가지가 있습니다. 사용하는 방법은 엔터프라이즈 계정을 구성하는 방법에 따라 달라집니다.

엔터프라이즈 계정에서 Enterprise Managed Users를 사용하는 경우, ID 공급자(예: Entra ID)를 통해 GitHub에 로그인하고 엔터프라이즈 계정에 연결된 프로비저닝된 계정을 사용합니다.

그렇지 않으면 개인 GitHub 계정을 사용합니다. 해당 계정은 엔터프라이즈 계정 및 사용자가 작업할 모든 조직에 초대됩니다. 엔터프라이즈 계정이 추가 SAML 액세스 제한으로 구성된 경우 개인 계정이 IdP에 연결 됩니다. 엔터프라이즈 계정 내의 리소스에 액세스해야 하는 경우 IdP로 인증하라는 메시지가 표시됩니다.

GitHub의 엔터프라이즈에서 리포지토리는 퍼블릭, 프라이빗 또는 내부일 수 있습니다. 프라이빗 리포지토리는 명시적 액세스 권한이 있는 사용자와 팀에만 표시되며 내부 리포지토리는 엔터프라이즈의 모든 구성원이 볼 수 있지만 엔터프라이즈 외부의 사용자에게는 표시되지 않습니다. 내부 리포지토리는 동일한 엔터프라이즈의 여러 조직이 코드를 검색하고 다시 사용해야 하는 경우에 유용합니다. 엔터프라이즈에서 Enterprise Managed Users를 사용하는 경우 사용자 계정은 공용 리포지토리 또는 기타 공용 콘텐츠를 만들 수 없습니다.

Git 사용

Git을 사용하여 리포지토리 작업을 계속하려면 몇 가지 변경을 수행해야 합니다.

  1. GitHub을 가리키도록 원격 URL을 업데이트합니다. 원격 리포지토리 관리을(를) 참조하세요.
  2. 인증 방법을 업데이트합니다.
  3. 엔터프라이즈 또는 조직에서 SAML SSO(Single Sign-On)를 사용하는 경우 리소스에 액세스하려면 먼저 personal access token 또는 SSH 키에 권한을 부여해야 합니다.

끌어오기 요청 흐름

이제 코드베이스가 GitHub에서 호스팅되면 GitHub 리포지토리에서 만든 끌어오기 요청을 사용하여 변경 내용을 제안합니다.

엔터프라이즈에서 Azure Boards 및 Pipelines를 통합한 경우 둘 다 GitHub와 함께 작동합니다. 커밋 메시지 및 끌어오기 요청에서 작업 항목을 계속 참조할 수 있습니다. 예: Fix login bug (AB#1234).

Azure Boards에서 작업 항목을 계속 보고 관리할 수 있습니다. 분기, 커밋 및 끌어오기 요청을 Azure 내에서 작업 항목에 연결할 수도 있습니다. Microsoft Learn에서 Azure Boards의 작업 항목에 GitHub 커밋, 끌어오기 요청, 분기 및 문제를 연결하는 방법을 참조하세요.

분기 보호

관리자가 리포지토리에 액세스할 수 있는 사용자는 GitHub에서 분기 보호 규칙을 구성할 수 있습니다. 이는 Azure DevOps의 분기 정책과 유사하며 최소 승인 검토자 수, 성공적인 상태 검사 및 서명된 커밋 요구와 같은 규칙을 설정합니다.

GitHub에서는 리포지토리의 CODEOWNERS 파일에서 파일, 폴더 및 glob 패턴을 기반으로 검토자를 자동으로 할당할 수도 있습니다. 코드 소유자 정보을(를) 참조하세요.

패키지 및 아티팩트

Azure DevOps에서 Azure Artifacts를 사용하여 패키지(예: NuGet 패키지, npm 패키지 또는 Maven 패키지)를 게시 및 사용하고 Azure Pipelines에서 생성된 빌드 아티팩트를 저장했을 수 있습니다.

GitHub에서 패키지는 일반적으로 GitHub Packages에 게시되고 리포지토리 또는 조직과 연결됩니다. 엔터프라이즈에서 마이그레이션을 완료한 방법에 따라 패키지를 Azure Artifacts에 계속 게시하거나, 패키지를 GitHub Packages로 이동하거나, 둘 다의 조합을 사용할 수 있습니다.

마이그레이션 후에 더 이상 종속성을 복원할 수 없는 경우 패키지 원본 구성을 확인합니다. 예를 들어 레지스트리 URL 또는 자격 증명을 파일(예: nuget.config, .npmrc``settings.xml또는 파이프라인 구성)에서 업데이트해야 할 수 있습니다.

자세한 내용은 GitHub 패키지 소개을(를) 참조하세요.

GitHub Copilot

GitHub에서 리포지토리를 호스팅하면 Copilot의 모든 기능을 잠금 해제할 수 있습니다. 코드베이스는 Copilot에 부조종사 채팅의 질문에 답변을 제공하고, 끌어오기 요청을 검토하며 제안하고, Copilot 코딩 에이전트를 사용하여 사용자를 대신하여 변경하는 데 필요한 모든 컨텍스트를 제공합니다.

          [AUTOTITLE](/copilot/get-started/quickstart)을(를) 참조하세요.