InfoGrab Docs

포크 업데이트

요약

포크는 선택한 네임스페이스에 생성하는 리포지터리와 모든 브랜치의 개인 복사본입니다. GitLab UI로도 포크를 업데이트할 수 있습니다. 커맨드 라인에서 포크를 업데이트하려면: 포크에 upstream 원격 리포지터리가 구성되어 있는지 확인합니다:

포크는 선택한 네임스페이스에 생성하는 리포지터리와 모든 브랜치의 개인 복사본입니다. 포크를 사용하여 액세스 권한이 없는 다른 프로젝트에 변경 사항을 제안할 수 있습니다. 자세한 내용은 포킹 워크플로우를 참조하세요.

GitLab UI로도 포크를 업데이트할 수 있습니다.

사전 요구 사항:

커맨드 라인에서 포크를 업데이트하려면:

  1. 포크에 upstream 원격 리포지터리가 구성되어 있는지 확인합니다:

    1. 아직 하지 않았다면 포크를 로컬로 클론합니다. 자세한 내용은 리포지터리 클론을 참조하세요.

    2. 포크에 구성된 원격을 확인합니다:

      git remote -v
      
    3. 포크가 원래 리포지터리를 가리키는 원격이 없으면 다음 예시 중 하나를 사용하여 upstream이라는 원격을 구성합니다:

      # Set any repository as your upstream after editing <upstream_url>
      git remote add upstream <upstream_url>
      
      # Set the main GitLab repository as your upstream
      git remote add upstream https://gitlab.com/gitlab-org/gitlab.git
      
  2. 포크를 업데이트합니다:

    1. 로컬 복사본에서 기본 브랜치를 체크아웃합니다. main을 기본 브랜치 이름으로 바꿉니다:

      git checkout main
      

      [!note] Git이 스테이지되지 않은 변경 사항을 감지하면 계속하기 전에 커밋하거나 스태시합니다.

    2. 업스트림 리포지터리에서 변경 사항을 가져옵니다:

      git fetch upstream
      
    3. 변경 사항을 포크로 풀합니다. main을 업데이트 중인 브랜치 이름으로 바꿉니다:

      git pull upstream main
      
    4. 서버의 포크 리포지터리에 변경 사항을 푸시합니다:

      git push origin main
      

포크 간 협업#

GitLab은 업스트림 프로젝트 유지 관리자와 포크 소유자 간의 협업을 지원합니다. 자세한 내용은 다음을 참조하세요:

업스트림 멤버로 포크에 푸시#

다음의 경우 포크된 리포지터리의 브랜치에 직접 푸시할 수 있습니다:

  • 머지 리퀘스트 작성자가 업스트림 멤버의 기여를 허용했습니다.
  • 업스트림 프로젝트에 대한 Developer, Maintainer 또는 Owner 권한이 있습니다.

다음 예시에서:

  • 포크된 리포지터리 URL은 git@gitlab.com:contributor/forked-project.git입니다.
  • 머지 리퀘스트의 브랜치는 fork-branch입니다.

기여자의 머지 리퀘스트에 커밋을 변경하거나 추가하려면:

  1. 상단 바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.

  2. Code > Merge requests로 이동하여 머지 리퀘스트를 찾습니다.

  3. 오른쪽 상단 모서리에서 Code를 선택한 다음 Check out branch를 선택합니다.

  4. 다이얼로그에서 Copy([copy-to-clipboard])를 선택합니다.

  5. 터미널에서 리포지터리의 클론된 버전으로 이동하고 명령을 붙여넣습니다. 예를 들면:

    git fetch "git@gitlab.com:contributor/forked-project.git" 'fork-branch'
    git checkout -b 'contributor/fork-branch' FETCH_HEAD
    

    이 명령들은 포크된 프로젝트에서 브랜치를 가져오고 작업할 로컬 브랜치를 만듭니다.

  6. 브랜치의 로컬 복사본에 변경 사항을 적용한 다음 커밋합니다.

  7. 로컬 변경 사항을 포크된 프로젝트에 푸시합니다. 다음 명령은 로컬 브랜치 contributor/fork-branchgit@gitlab.com:contributor/forked-project.git 리포지터리의 fork-branch 브랜치로 푸시합니다:

    git push git@gitlab.com:contributor/forked-project.git contributor/fork-branch:fork-branch
    

    커밋을 수정하거나 스쿼시한 경우 git push --force를 사용해야 합니다. 이 명령은 커밋 히스토리를 다시 쓰므로 주의하세요.

    git push --force git@gitlab.com:contributor/forked-project.git contributor/fork-branch:fork-branch
    

    콜론(:)은 소스 브랜치와 대상 브랜치를 지정합니다. 스키마는 다음과 같습니다:

    git push <forked_repository_git_url> <local_branch>:<fork_branch>
    

관련 주제#

포크 업데이트

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

포크는 선택한 네임스페이스에 생성하는 리포지터리와 모든 브랜치의 개인 복사본입니다. GitLab UI로도 포크를 업데이트할 수 있습니다. 커맨드 라인에서 포크를 업데이트하려면: 포크에 upstream 원격 리포지터리가 구성되어 있는지 확인합니다:

포크는 선택한 네임스페이스에 생성하는 리포지터리와 모든 브랜치의 개인 복사본입니다. 포크를 사용하여 액세스 권한이 없는 다른 프로젝트에 변경 사항을 제안할 수 있습니다. 자세한 내용은 포킹 워크플로우를 참조하세요.

GitLab UI로도 포크를 업데이트할 수 있습니다.

사전 요구 사항:

커맨드 라인에서 포크를 업데이트하려면:

  1. 포크에 upstream 원격 리포지터리가 구성되어 있는지 확인합니다:

    1. 아직 하지 않았다면 포크를 로컬로 클론합니다. 자세한 내용은 리포지터리 클론을 참조하세요.

    2. 포크에 구성된 원격을 확인합니다:

      git remote -v
      
    3. 포크가 원래 리포지터리를 가리키는 원격이 없으면 다음 예시 중 하나를 사용하여 upstream이라는 원격을 구성합니다:

      # Set any repository as your upstream after editing <upstream_url>
      git remote add upstream <upstream_url>
      
      # Set the main GitLab repository as your upstream
      git remote add upstream https://gitlab.com/gitlab-org/gitlab.git
      
  2. 포크를 업데이트합니다:

    1. 로컬 복사본에서 기본 브랜치를 체크아웃합니다. main을 기본 브랜치 이름으로 바꿉니다:

      git checkout main
      

      [!note] Git이 스테이지되지 않은 변경 사항을 감지하면 계속하기 전에 커밋하거나 스태시합니다.

    2. 업스트림 리포지터리에서 변경 사항을 가져옵니다:

      git fetch upstream
      
    3. 변경 사항을 포크로 풀합니다. main을 업데이트 중인 브랜치 이름으로 바꿉니다:

      git pull upstream main
      
    4. 서버의 포크 리포지터리에 변경 사항을 푸시합니다:

      git push origin main
      

포크 간 협업#

GitLab은 업스트림 프로젝트 유지 관리자와 포크 소유자 간의 협업을 지원합니다. 자세한 내용은 다음을 참조하세요:

업스트림 멤버로 포크에 푸시#

다음의 경우 포크된 리포지터리의 브랜치에 직접 푸시할 수 있습니다:

  • 머지 리퀘스트 작성자가 업스트림 멤버의 기여를 허용했습니다.
  • 업스트림 프로젝트에 대한 Developer, Maintainer 또는 Owner 권한이 있습니다.

다음 예시에서:

  • 포크된 리포지터리 URL은 git@gitlab.com:contributor/forked-project.git입니다.
  • 머지 리퀘스트의 브랜치는 fork-branch입니다.

기여자의 머지 리퀘스트에 커밋을 변경하거나 추가하려면:

  1. 상단 바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.

  2. Code > Merge requests로 이동하여 머지 리퀘스트를 찾습니다.

  3. 오른쪽 상단 모서리에서 Code를 선택한 다음 Check out branch를 선택합니다.

  4. 다이얼로그에서 Copy([copy-to-clipboard])를 선택합니다.

  5. 터미널에서 리포지터리의 클론된 버전으로 이동하고 명령을 붙여넣습니다. 예를 들면:

    git fetch "git@gitlab.com:contributor/forked-project.git" 'fork-branch'
    git checkout -b 'contributor/fork-branch' FETCH_HEAD
    

    이 명령들은 포크된 프로젝트에서 브랜치를 가져오고 작업할 로컬 브랜치를 만듭니다.

  6. 브랜치의 로컬 복사본에 변경 사항을 적용한 다음 커밋합니다.

  7. 로컬 변경 사항을 포크된 프로젝트에 푸시합니다. 다음 명령은 로컬 브랜치 contributor/fork-branchgit@gitlab.com:contributor/forked-project.git 리포지터리의 fork-branch 브랜치로 푸시합니다:

    git push git@gitlab.com:contributor/forked-project.git contributor/fork-branch:fork-branch
    

    커밋을 수정하거나 스쿼시한 경우 git push --force를 사용해야 합니다. 이 명령은 커밋 히스토리를 다시 쓰므로 주의하세요.

    git push --force git@gitlab.com:contributor/forked-project.git contributor/fork-branch:fork-branch
    

    콜론(:)은 소스 브랜치와 대상 브랜치를 지정합니다. 스키마는 다음과 같습니다:

    git push <forked_repository_git_url> <local_branch>:<fork_branch>
    

관련 주제#