포크를 사용하여 내부 소스 설명

완료됨

리포지토리의 코드를 변경하고 싶지만 쓰기 권한이 없는 경우 사용자는 리포지토리를 포크합니다.

쓰기 권한이 없는 경우 해당 리포지토리에 기여하는 팀의 일원이 아닌 경우 코드 리포지토리를 수정해야 하는 이유는 무엇인가요?

우리는 우리의 작업에서 뭔가를 개선하기 위해 기술적 인 이유를 찾는 경향이있다.

기존 기능에 기여하거나 개선하여 솔루션을 구현하거나 기능을 향상시키는 더 나은 방법을 찾을 수 있습니다.

다음과 같은 상황에서 리포지토리를 포크할 수 있습니다.

  • 나는 변화를 만들고 싶다.
  • 나는 프로젝트가 흥미 진진하다고 생각하고 그것을 사용할 수 있습니다.
  • 해당 리포지토리의 일부 코드를 프로젝트의 시작점으로 사용하려고 합니다.

소프트웨어 팀은 소프트웨어 프로젝트뿐만 아니라 내부적으로 모든 프로젝트에 기여하는 것이 좋습니다.

포크는 내부 오픈 소스 문화를 형성하는 탁월한 방법입니다.

포크는 Azure DevOps Git 리포지토리에 최근 추가되었습니다.

이 레시피는 기존 리포지토리를 포크하고 끌어오기 요청을 통해 업스트림의 변경 내용을 기여하도록 가르칩니다.

준비

포크는 원본 리포지토리(업스트림)의 모든 내용으로 생성됩니다.

Azure DevOps에서 포크를 만들 때 모든 분기를 포함하거나 기본 분기로만 제한할 수 있습니다.

포크는 포크되는 리포지토리의 권한, 정책 또는 빌드 정의를 복사하지 않습니다.

포크를 만든 후에는 끌어오기 요청을 시작하지 않는 한 새로 만든 파일, 폴더 및 분기가 리포지토리 간에 공유되지 않습니다.

끌어오기 요청은 포크에서 업스트림으로 또는 업스트림에서 포크로 어느 방향으로든 지원됩니다.

끌어오기 요청에 대한 가장 일반적인 방법은 포크에서 업스트림으로입니다.

이 작업을 수행하는 방법

  1. 포크 단추(1)를 선택한 다음 포크를 만들 프로젝트를 선택합니다(2). 포크에 이름을 지정하고 포크 단추(3)를 선택합니다.

  2. 포크가 준비되면 명령줄 또는 Visual Studio와 같은 IDE를 사용하여 복제합니다. 포크는 여러분의 원점 원격 저장소입니다. 편의를 위해 업스트림 리포지토리(포크한 위치)를 업스트림이라는 원격으로 추가하려고 합니다. 명령줄에서 다음을 입력합니다.

    git remote add upstream {upstream_url}
    
  3. 기본에서 직접 작업할 수 있습니다. 이 포크는 리포지토리의 복사본입니다. 여전히 토픽 브랜치에서 작업하는 것을 권장합니다. 이를 통해 여러 독립 작업 스트림을 동시에 유지할 수 있습니다. 또한 변경 내용을 포크로 동기화하려는 경우 나중에 혼동을 줄입니다. 평소와 같이 변경 내용을 만들고 커밋합니다. 수정을 완료하면 원본(포크)으로 푸시합니다.

  4. 포크에서 업스트림(upstream)으로 끌어오기 요청을 생성합니다. 업스트림 리포지토리는 검토자 및 빌드에 필요한 모든 정책을 적용합니다. 모든 정책이 충족되면 PR을 완료할 수 있으며 변경 내용은 업스트림 리포지토리의 영구 부분이 됩니다.
    끌어오기 요청을 만들기 위한 다이어그램

  5. PR이 업스트림에 허용되면 포크가 최신 리포지토리 상태를 반영하는지 확인해야 합니다. 업스트림의 메인 브랜치(주 개발 브랜치라고 가정)에서 리베이스하는 것이 좋습니다. 명령줄에서 다음을 실행합니다.

    git fetch upstream main
    git rebase upstream/main
    git push origin
    

Git에 대한 자세한 내용은 다음을 참조하세요.