다음을 통해 공유


Microsoft Learn 설명서에 대한 Git 및 GitHub 필수 사항

개요

Microsoft Learn 설명서에 대한 기여자 여러 도구 및 프로세스와 상호 작용합니다. 동일한 프로젝트에서 다른 참여자와 동시에 작업하게 되며, 정확히 동일한 콘텐츠를 동시에 작업하게 될 수도 있습니다. 이러한 작업은 Git 및 GitHub 소프트웨어를 통해 가능합니다.

Git은 오픈 소스 버전 제어 시스템입니다. Git을 사용하면 리포지토리에 위치하는 파일의 배포된 버전 제어를 통해 이러한 유형의 프로젝트 협업을 손쉽게 수행할 수 있습니다. 본질적으로 Git를 통해 지정된 리포지토리에서 시간에 따라 여러 참여자가 수행한 작업의 스트림을 통합할 수 있습니다.

GitHub는 Microsoft Learn 콘텐츠를 저장하는 데 사용되는 것과 같은 Git 리포지토리에 대한 웹 기반 호스팅 서비스입니다. 모든 프로젝트에서 GitHub는 기본 리포지토리를 호스트합니다. 여기에서 참여자는 각자 작업의 복사본을 만들 수 있습니다.

이 문서에서는 Microsoft Learn 워크플로의 일부인 주요 용어를 정의합니다. 또한 Git 및 GitHub 리포지토리에 대한 개요를 제공하고 Microsoft 기술 설명서를 위해 콘텐츠를 구성하는 방법을 설명합니다.

지점

분기는 작업 스트림(일반적으로 버전이라고 함)을 구분합니다. 기여는 항상 특정 분기에 대해 이루어지고 범위 지정됩니다.

특정 분기에 대한 관련 변경 내용을 격리하면 해당 변경 내용을 독립적으로 제어하고 도입할 수 있습니다. 실제로, 작업 유형에 따라 리포지토리에 몇 개의 작업 분기를 쉽게 구축할 수 있습니다. 각각 다른 프로젝트를 나타내는 여러 분기에서 동시에 작업하는 것은 일반적입니다.

모든 리포지토리에는 기본 분기(일반적으로 "기본"이라고 함) 및 아직 기본 분기 통합되지 않은 하나 이상의 진행 중인 분기(작업 분기라고 함)가 포함됩니다. 기본 분기는 프로젝트의 현재 버전이자 “단일 데이터 소스”(single source of truth)로 사용됩니다. 리포지토리의 나머지 분기들은 부모인 마스터 분기에서 생성됩니다.

논리적으로 관련된 새 변경 내용 집합을 도입할 때마다 변경 내용을 관리하는 작업 분기를 만드는 것이 가장 좋습니다. 기본 분기 직접 변경하지 않는 것이 좋습니다.

포크

이 용어는 일반적으로 기본 GitHub 리포지토리의 복사본을 참조할 때 명사로 사용됩니다. 실제로 포크는 다른 리포지토리일 뿐입니다. 하지만 GitHub이 기본/부모 리포지토리에 다시 연결된다는 점에서 구별됩니다. 이 용어는 "먼저 리포지토리를 포크해야 합니다"와 같이 동사로 사용되는 경우도 있습니다.

Git

중앙 집중식 버전 제어 시스템(예: Team Foundation Server, SharePoint 또는 Visual Source금고)에 익숙한 경우 Git에 분산 모델을 지원하는 고유한 기여 워크플로 및 용어가 있음을 알 수 있습니다. 예를 들어 일반적으로 검사-out/검사-in 작업과 연결된 파일 잠금은 없습니다. 대신 Git은 파일 바이트 바이트를 비교하여 더 미세한 수준의 변경 내용을 염려합니다.

또한 Git은 계층화된 구조를 사용하여 프로젝트에 대한 콘텐츠를 저장하고 관리합니다.

  • 리포지토리: 리포지토리라고 하며 가장 높은 스토리지 단위입니다. 리포지토리는 하나 이상의 분기를 포함합니다.
  • 분기: 프로젝트의 콘텐츠 세트를 구성하는 파일과 폴더가 포함된 스토리지 단위입니다. 분기에 대한 자세한 내용은 이 문서의 분기 섹션을 참조하세요.

참여자는 Git와 상호 작용하여 로컬 및 GitHub 수준에서 리포지토리를 업데이트하고 조작합니다.

  • 로컬로 Git Bash 콘솔과 같은 도구를 통해 로컬 리포지토리를 관리하고 GitHub 리포지토리와 통신하는 Git 명령을 지원합니다.
  • Git과 통합된 www.github.com을 통해 기본 리포지토리로 다시 이동하는 참가 조정을 관리합니다.

GitHub

참고 항목

설명서 지침은 GitHub 사용을 기반으로 하지만 일부 팀은 Visual Studio Team Services를 사용하여 Git 리포지토리를 호스트합니다. Visual Studio 팀 탐색기 클라이언트는 명령줄을 통한 Git 명령 사용의 대안으로 Team Services 리포지토리를 조작하기 위한 GUI를 제공합니다.
또한 아래 지침 중 다수는 GitHub에서 Azure 서비스 콘텐츠를 호스트하는 몇 년 동안의 경험을 통해 모범 사례로 발전되었습니다. 일부 Microsoft Learn 리포지토리에서 필요할 수 있습니다.

모든 워크플로는 모든 설명서 프로젝트에 대한 기본 리포지토리가 저장되는 GitHub 수준에서 시작되고 끝납니다. 기여자가 자신의 용도에 맞게 만든 복사본이 여러 컴퓨터에 배포됩니다. 이러한 복사본은 결과적으로 프로젝트의 기본 GitHub 리포지토리로 조정됩니다.

디렉토리 조직

프로젝트의 기본 분기 프로젝트의 현재 콘텐츠 버전으로 사용됩니다. 기본 분기 콘텐츠와 해당 콘텐츠에서 만든 분기는 해당 Microsoft Learn 페이지의 문서 조직과 느슨하게 정렬됩니다. 하위 디렉터리를 사용하여 문서(예: 서비스), 미디어 콘텐츠(예: 이미지 파일) 및 "포함" 파일(콘텐츠 재사용 가능)을 구분합니다.

아티클 하위 디렉터리

일반적으로 기본 articles 디렉터리는 리포지토리 루트 아래에서 찾을 수 있습니다. 디렉터리에는 articles .md 확장을 사용하는 Markdown 파일로 형식이 지정된 하위 디렉터리의 하위 디렉터리 아티클 집합이 포함되어 있습니다. 여러 서비스를 지원하는 일부 리포지토리는 Azure-Docs 리포지토리와 같은 일반 /articles 하위 디렉터리를 사용합니다. 다른 리포지토리는 /IntuneDocs를 사용하는 IntuneDocs 리포지토리와 같은 서비스 특정 이름을 사용할 수 있습니다.

이 디렉토리의 루트 내에서 전반적인 서비스 또는 제품과 관련된 일반적인 문서를 발견할 수 있습니다. 또한 일반적으로 기능/서비스 또는 일반적인 시나리오와 일치하는 다른 하위 디렉토리 시리즈를 찾을 수 있습니다. 예를 들어 Azure "가상 머신" 문서는 /virtual-machines 하위 디렉터리에 있으며, Intune "이해 및 탐색" 문서는 /understand-explore 하위 디렉터리에 있습니다.

미디어 하위 디렉토리

각 문서 디렉터리에는 해당 미디어 파일의 /media 하위 디렉터리가 포함되어 있습니다. 미디어 파일에는 이미지 참조가 있는 문서에서 사용하는 이미지가 포함되어 있습니다.

포함되는 내용 하위 디렉토리

두 개 이상의 문서에서 공유되는 재사용 가능 콘텐츠는 언제나 기본 articles 디렉터리 아래 /includes 하위 디렉터리에 배치됩니다. 포함 파일을 사용하는 Markdown 파일에서는 포함 파일을 참조해야 하는 위치에 해당하는 “포함” Markdown 확장이 배치됩니다.

추가 지침은 Markdown 참조: 포함을 참조하세요.

Markdown 파일 템플릿

각 리포지토리의 루트 디렉터리에는 편의를 위해 일반적으로 template.md라는 Markdown 템플릿 파일이 포함되어 있습니다. 리포지토리에 제출할 새 문서를 만들어야 하는 경우 이 템플릿 파일을 "스타터 파일"로 사용할 수 있습니다. 파일에는 다음 항목이 포함되어 있습니다.

  • 파일 맨 위에서 2개의 3-하이픈 선으로 구분된 메타데이터 헤더. 문서와 관련된 정보를 추적하는 데 사용되는 다양한 태그가 포함되어 있습니다. 문서 메타데이터를 사용하면 작성자 특성, 기여자 특성, 이동 경로, 문서 설명 등의 특정 기능을 사용할 수 있습니다. 또한 Microsoft가 콘텐츠의 성능을 평가하는 데 사용하는 SEO 최적화 및 보고 프로세스가 포함되어 있습니다. 따라서 메타데이터는 중요합니다.
  • 다양한 메타데이터 태그 및 값에 대해 설명하는 메타데이터 섹션. 메타데이터 섹션에 사용할 값을 잘 모를 경우에는 해당 섹션을 비워두거나 선행 해시태그(#)를 사용하여 주석으로 처리할 수 있습니다. 그런 다음 리포지토리의 끌어오기 요청 검토자가 검토 및 완료합니다.
  • 다양한 Markdown 사용 예는 문서 요소의 형식을 지정합니다.
  • 다양한 알림 형식에 사용할 수 있는 Markdown 확장 사용에 대한 일반적인 지침.
  • iframe을 사용하여 동영상을 포함하는 예제
  • 단추 및 선택기와 같은 특수한 컨트롤에 사용할 수 있는 Microsoft 기술 문서 확장 사용에 대한 일반적인 지침.

기원

이 용어는 로컬 리포지토리와 복제된 리포지토리 간의 연결에 할당된 이름입니다. Microsoft Learn 워크플로에서 원본은 포크에 대한 연결을 나타냅니다. 이 용어는 "변경 내용을 원본으로 푸시해야 합니다."와 같이 원본 리포지토리 자체의 모니커로 사용되는 경우도 있습니다.

끌어오기 요청

PR(끌어오기 요청)은 콘텐츠 소유자가 변경 내용을 공식 원본으로 끌어오도록 요청하는 것입니다. PR을 사용하면 작업 분기의 변경 내용(커밋이라고도 함)을 끌어와 다른 분기로 병합하도록 요청하여 GitHub의 공동 작업 모델을 사용할 수 있습니다. 대부분 경우 해당 다른 분기가 기본 리포지토리의 기본 분기입니다.

PR은 변경 내용이 기본 분기 병합되기 전에 문제 또는 질문을 해결하기 위해 Microsoft Learn의 유효성 검사 프로세스 및 PR 검토자의 피드백을 기여자 제공하는 메커니즘으로도 사용됩니다.

원격

원격은 "원본" 또는 "업스트림" 원격과 같은 원격 리포지토리 명명된 연결입니다. Git은 다른 컴퓨터에서 호스트되는 리포지토리를 참조하는 데 사용되므로 이를 원격이라고 합니다. Microsoft Learn 워크플로에서 원격은 항상 GitHub 리포지토리입니다.

업스트림

원본 원격과 마찬가지로 업스트림 다른 리포지토리에 명명된 연결입니다. Microsoft Learn 워크플로에서 업스트림 로컬 리포지토리와 포크가 만들어진 기본 리포지토리 간의 연결을 나타냅니다. 이 용어는 "업스트림 최신 변경 내용을 가져와야 합니다."와 같이 업스트림 리포지토리 자체의 모니커로 사용되는 경우도 있습니다.

자세한 정보

Git 또는 GitHub에 익숙하지 않은 경우 이러한 리소스는 학습하거나 생산성을 높이거나 질문에 대답하는 데 도움이 될 수 있습니다.

Git 소스 제어 리소스

GitHub 리소스

FAQ

Git이란?

Git은 많은 사람들이 함께 컴퓨터 코드를 작업할 때 변경 내용을 추적하는 데 도움이 됩니다. 코드에 대한 시간 컴퓨터와 같으므로 변경된 내용을 확인하고 필요한 경우 돌아갈 수 있습니다.

Git을 사용하는 이유

팀워크에 좋습니다. Git을 사용하면 많은 사람들이 서로의 작업을 망치지 않고도 같은 프로젝트에서 쉽게 작업할 수 있습니다. 또한 실수를 쉽게 해결하는 데 도움이 됩니다.

Git은 어떻게 작동하나요?

Git은 프로젝트 코드의 모든 버전을 저장합니다. 변경하면 Git은 다른 항목의 사진(예: 스냅샷)을 찍습니다. 문제 없이 동시에 다른 버전을 만들 수 있습니다.

Git의 분기란?

분기는 프로젝트의 다른 경로와 같습니다. 기본 프로젝트를 변경하지 않고도 새로운 작업을 수행할 수 있습니다. 나중에 이러한 변경 내용을 기본 프로젝트로 다시 가져올 수 있습니다.

Git의 커밋이란?

커밋은 저장 지점과 같습니다. 변경 내용을 기록하는 방법입니다. 각 커밋에는 고유한 ID와 변경된 내용에 대한 메모가 있습니다.

GitHub란?

GitHub는 Git 프로젝트를 저장할 수 있는 웹 사이트입니다. 다른 사용자와 코드를 공유하고 함께 작업하기 위한 큰 허브와 같습니다. 또한 누가 무엇을 변경했는지 추적하는 데 도움이 됩니다.

GitHub는 Git과 어떻게 다른가요?

Git은 변경 내용을 추적하는 도구이며 GitHub는 프로젝트를 저장하고 함께 작업할 수 있는 장소입니다. GitHub는 Git을 사용하여 마법을 수행합니다.

GitHub가 무료인가요?

예, 모든 사람이 볼 수 있는 프로젝트의 경우입니다. 그러나 개인 프로젝트(사용자와 팀만)의 경우 비용을 지불해야 할 수 있습니다. 추가 기능으로 다양한 플랜을 제공합니다.

GitHub의 끌어오기 요청이란?

끌어오기 요청은 변경 내용을 기본 프로젝트에 넣도록 요청하는 것과 같습니다. 사람 변경 내용이 추가되기 전에 검토하고 논의할 수 있습니다.

GitHub는 얼마나 안전합니까?

GitHub는 보안을 잘 처리합니다. 특수 코드 및 규칙을 사용하여 올바른 사용자만 코드에 액세스하고 변경할 수 있는지 확인합니다. 보안을 강화하기 위해 2단계 인증과 같은 추가 보안 계층을 추가할 수도 있습니다.