포크를 통한 병합 요청 협업
포크에서 병합 요청을 열 때, 상위 브랜치 멤버들이 귀하의 브랜치에서 협업할 수 있도록 허용할 수 있습니다. 이 옵션을 활성화하면 대상 브랜치에 병합할 권한이 있는 멤버들이 병합 요청의 소스 브랜치에 쓸 수 있는 권한이 부여됩니다.
상위 프로젝트의 멤버들은 그 후에 병합하기 전에 작은 수정사항이나 리베이스 브랜치를 만들 수 있습니다.
이 기능은 공개적으로 접근 가능한 포크된 프로젝트 간의 병합 요청에 대해 사용할 수 있습니다.
상위 멤버로부터의 커밋 허용
병합 요청의 작성자로서, 귀하는 기여 중인 프로젝트의 상위 멤버로부터의 커밋 편집을 허용할 수 있습니다:
- 병합 요청을 생성하거나 편집하는 동안 기여(Contribution)로 스크롤하고 대상 브랜치에 병합할 수 있는 멤버로부터의 커밋을 허용 확인란을 선택하세요.
- 병합 요청을 생성을 완료합니다.
병합 요청을 만든 후, 병합 요청 위젯에 병합할 수 있는 멤버가 커밋을 추가할 수 있습니다 메시지가 표시됩니다. 그 후 상위 멤버들은 다음을 수행할 수 있습니다:
- 직접 귀하의 브랜치에 커밋합니다.
- 병합 요청의 파이프라인과 작업을 다시 시도합니다.
상위 멤버로부터의 커밋 방지
병합 요청의 작성자로서, 귀하는 기여 중인 프로젝트의 상위 멤버로부터의 커밋 편집을 방지할 수 있습니다:
- 병합 요청을 생성하거나 편집하는 동안 기여(Contribution)로 스크롤하고 대상 브랜치에 병합할 수 있는 멤버로부터의 커밋을 허용 확인란을 선택 취소하세요.
- 병합 요청을 만들기를 완료합니다.
상위 멤버로서 포크에 푸시하기
상위 프로젝트 멤버로서, 만약:
- 병합 요청의 작성자가 상위 멤버로부터의 기여를 활성화했다면
- 상위 프로젝트에 대해 적어도 Developer 역할을 가지고 있다면
다음 예제에서:
- 포크된 프로젝트 URL은
git@gitlab.com:contributor/forked-project.git
입니다. - 병합 요청의 브랜치는
fork-branch
입니다.
기여자의 병합 요청을 변경하거나 새 커밋을 추가하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 귀하의 프로젝트를 찾습니다.
- 코드(Code) > 병합 요청(Merge requests) 를 선택하고 병합 요청을 찾습니다.
- 오른쪽 상단 모서리에서 코드(Code)를 선택한 다음 브랜치로 이동(Check out branch)를 선택합니다.
- 대화상자에서 복사(Copy) ()를 선택합니다.
-
터미널에서 귀하의 저장소의 복제본으로 이동하고 명령을 붙여넣습니다. 예를 들어:
git fetch "git@gitlab.com:contributor/forked-project.git" 'fork-branch' git checkout -b 'contributor/fork-branch' FETCH_HEAD
이러한 명령은 포크된 프로젝트에서 브랜치를 가져와 귀하가 작업할 수 있는 로컬 브랜치를 만듭니다.
- 로컬 브랜치의 변경사항을 작업하고, 그런 다음 커밋합니다.
-
로컬 변경 사항을 포크된 프로젝트로 푸시합니다. 다음 명령은 로컬 브랜치
contributor/fork-branch
를git@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@gitlab.com:contributor/forked-project.git contributor/fork-branch:fork-branch
두 브랜치 사이에 콜론(
:
)을 주목하세요. 일반적인 구조는 다음과 같습니다:git push <forked_repository_git_url> <local_branch>:<fork_branch>
문제 해결
포크된 프로젝트의 MR 페이지에서 파이프라인 상태를 가져오지 못함
사용자가 프로젝트를 포크할 때, 포크된 복사본의 권한은 원본 프로젝트로부터 복사되지 않습니다. 포크의 작성자는 변경 사항을 상위 프로젝트 멤버들이 볼 수 있거나 병합할 수 있도록 포크된 복사본에 권한을 부여해야 합니다.
포크된 프로젝트의 병합 요청 페이지에서 파이프라인 상태를 보려면 원래 프로젝트로 돌아가야 합니다:
- 모든 상위 멤버를 포함하는 그룹을 만듭니다.
- 왼쪽 사이드바에서 포크된 프로젝트를 선택하고 이동합니다.
- 포크된 프로젝트에서 관리(Manage) > 멤버(Members) 페이지로 이동하고 새로 만든 그룹을 포크된 프로젝트에 초대합니다.