Skip to main content

프로젝트에 대한 코드 작성

분기, 포크, 커밋 및 끌어오기 요청을 사용하여 공동 작업 프로젝트에 대한 코드 변경 내용을 안전하게 작성, 구체화 및 제안할 수 있습니다.

프로젝트에 참여할 때 주 코드 베이스에 영향을 미치기 전에 코드를 작성하고 구체화할 수 있는 안전한 장소가 필요합니다. 분기, 포크, 커밋 및 끌어오기 요청은 함께 작동하여 해당 공간을 제공하므로 실험하고, 작업을 증분 방식으로 체크 인하고, 검토를 위해 완료된 변경 내용을 제안할 수 있습니다.

분기 및 포크를 사용하여 작업 격리

대부분의 작업은 자유롭게 변경할 수 있는 코드의 격리된 복사본을 만들어 시작합니다.

  • 리포지토리에 대한 쓰기 권한이 있는 경우 분기 를 사용합니다. 분기를 사용하면 다른 분기에 영향을 주지 않고 리포지토리의 포함된 영역에서 기능을 개발하거나 버그를 수정하거나 실험할 수 있습니다. 기존 분기(일반적으로 기본 분기)에서 분기를 만듭니다.
  • 쓰기 권한이 없거나 원래 프로젝트에서 완전히 독립하려는 경우 포크 를 사용합니다. 포크는 원래 "업스트림" 리포지토리와 코드 및 표시 유형 설정을 공유하는 별도의 리포지토리입니다. 자체 분기, 문제 및 끌어오기 요청이 있습니다. 포크를 사용하면 업스트림 리포지토리에 대한 끌어오기 요청을 열 수도 있습니다.

일반적으로 분기는 공유 리포지토리에서 이미 공동 작업할 때 가장 간단한 선택입니다. 포크는 업스트림 리포지토리에 대한 쓰기 액세스 권한이 없는 오픈 소스 기여에 가장 적합한 선택입니다.

커밋 작업 체크 인

코드를 작성할 때 작고 의미 있는 변경 내용 그룹을 커밋으로 저장합니다. 각 커밋은 변경된 내용을 설명하는 메시지와 함께 작업의 스냅샷을 기록하므로 기록을 더 쉽게 추적하고, 변경 내용을 검토하고, 코드가 어떻게 발전했는지 이해할 수 있습니다.

분기 또는 포크에서 자주 커밋하면 다음을 수행할 수 있습니다.

  • 더 큰 변경 내용이 검토 가능한 단계로 나선다.
  • 실험이 작동하지 않는 경우 이전 상태로 롤백합니다.
  • 검토자에게 최종 변경에 어떻게 도착했는지에 대한 명확한 기록을 제공합니다.

끌어오기 요청을 사용하여 변경 제안

작업을 공유할 준비가 되면 끌어오기 요청을 열어 변경 내용을 기본 분기로 병합할 것을 제안합니다. 끌어오기 요청은 커밋, 변경에 대한 설명 및 도구 검토자가 병합하기 전에 토론하고 평가해야 합니다.

검토를 공식적으로 요청하지 않고 변경 내용을 공유하는 초안 끌어오기 요청을 만들어 작업이 진행 중인 동안 끌어오기 요청을 열 수 있습니다. 이는 조기 피드백을 원하거나 코드에 대해 자동화된 검사를 실행하려는 경우에 유용합니다.

코드를 최신 상태로 유지하고 최적화

끌어오기 요청이 열려 있는 동안 다른 사용자가 작업을 병합할 때 기본 분기가 계속 변경됩니다. 변경 내용을 정리하고 충돌을 줄이려면 다음을 수행할 수 있습니다.

  • 기본 분기를 분기로 자주 병합하거나 다시 지정하므로 diff는 변경 내용에 계속 집중합니다. GitHub 는 기본적으로 분기와 분기가 밑이 다른 지점을 비교하는 3점 차이(diff)를 보여 줍니다.
  • 검토를 요청하기 전에 복잡한 커밋 기록(커밋 순서 변경, 결합 또는 다시 단어 변경)을 정리하도록 다시 설정합니다.
  • Git에서 경쟁 변경 내용을 자동으로 결합할 수 없는 경우 병합 충돌을 해결합니다.

리포지토리 컨트롤 내에서 작업

숙련된 기여자는 리포지토리가 정의하는 가드레일 내에서 작업합니다. 이러한 컨트롤은 푸시할 수 있는 위치, 작업을 승인해야 하는 사용자 및 병합하기 전에 전달해야 하는 항목을 셰이프합니다.

  • 보호된 분기 및 규칙 집합은 중요한 분기에 대한 직접 푸시를 차단하고, 선형 기록 또는 서명된 커밋을 요구하며, 병합하기 전에 상태 검사 또는 검토가 필요할 수 있습니다.
  • 코드 소유자는 변경 내용이 소유한 파일에 영향을 미칠 때 자동으로 검토를 요청하므로 중요한 영역에 대한 승인을 계획합니다.
  • 푸시 규칙 집합은 포크 네트워크에 적용되어 모든 포크의 파일 경로, 크기 또는 이름을 제한할 수 있습니다.
  • 사전 수신 후크를 사용하면 커밋이 GitHub Enterprise Server 수락되기 전에 관리자가 서버에서 정책 검사를 적용할 수 있습니다.

통합 도구 체인

끌어오기 요청은 코드를 빠르고 안전하게 작성하는 데 도움이 되는 자동화 및 서비스에 코드를 연결합니다.

  • Code scanning 변경 Dependabot 내용이 끌어오기 요청을 통해 이동함에 따라 보안 문제와 취약한 종속성을 노출하므로 보안 코딩 사례를 조기에 적용할 수 있습니다.
  • GitHub Actions 는 끌어오기 요청에 대한 모든 푸시에서 연속 통합을 실행하여 변경 내용을 자동으로 빌드하고 테스트할 수 있습니다.

추가 읽기