Hub documentation
Pull requests와 Discussions
Pull requests와 Discussions
Hub의 Pull requests와 Discussions를 통해 사용자는 저장소에 커뮤니티 기여를 할 수 있습니다. Pull requests와 Discussions는 모든 저장소 유형에서 동일한 방식으로 작동합니다.
전체적으로, 다른 git 호스트(예: GitHub)의 PR과 Issues의 더 간단한 버전을 구축하는 것이 목표입니다:
- 포크가 관여되지 않습니다: 기여자는 소스 저장소에서 특수한
ref브랜치에 직접 push합니다. - discussion과 PR 사이에 명확한 구분이 없습니다. 본질적으로 동일하기 때문에 동일한 목록에 표시됩니다.
- ML(즉, 모델/데이터셋/스페이스 저장소)에 최적화되어 있으며, 임의의 저장소에는 적용되지 않습니다.
참고로, Pull Requests와 discussions는 repository settings에서 활성화하거나 비활성화할 수 있습니다.
목록
어떤 저장소에서든 커뮤니티 탭으로 이동하면 모든 Discussions와 Pull requests를 볼 수 있습니다. open 상태인 항목만 필터링하여 볼 수도 있습니다.

보기
Discussion 페이지를 통해 다양한 사용자의 댓글을 확인할 수 있습니다. Pull Request인 경우, Files changed 탭으로 이동하여 모든 변경 사항을 볼 수 있습니다.

토론 / Pull request 제목 편집
PR이나 discussion을 열었거나, 저장소의 작성자이거나, 저장소에 쓰기 권한이 있는 경우 연필 버튼을 클릭하여 discussion 제목을 편집할 수 있습니다.
토론 / Pull Request 고정
리포지토리에 대한 쓰기 권한이 있으면 토론과 Pull Requests를 고정할 수 있습니다. 고정된 토론은 모든 토론 목록의 상단에 표시됩니다.


토론/풀 리퀘스트 잠금
리포지토리에 대한 쓰기 권한이 있으면 토론이나 Pull Requests를 잠금 처리할 수 있습니다. 토론이 잠금 처리되면 이전 댓글은 여전히 표시되며, 사용자는 새 댓글을 추가할 수 없습니다.


댓글 편집 및 관리
리포지토리에 댓글을 작성했거나 쓰기 권한이 있는 경우, 댓글 상자의 오른쪽 위 모서리에 있는 컨텍스트 메뉴에서 댓글 내용을 편집할 수 있습니다.


댓글이 수정되면 댓글 위에 새 링크가 나타납니다. 이 링크는 수정 이력을 표시합니다.


댓글을 숨길 수도 있습니다. 댓글을 숨기면 되돌릴 수 없으며, 더 이상 아무도 해당 내용을 볼 수 없거나 수정할 수 없습니다.

부적절한 댓글을 신고하는 방법을 확인하려면 moderation도 읽어보세요.
댓글과 토론에서 Markdown과 LaTeX를 사용할 수 있나요?
네! Markdown을 사용하여 댓글에 서식을 추가할 수 있습니다. 또한 수식 작성을 위해 LaTeX를 사용할 수 있으며, 수식은 Markdown으로 파싱되기 전에 KaTeX로 렌더링됩니다.
LaTeX 수식의 경우, 다음 구분자를 사용해야 합니다:
$$ ... $$은 디스플레이 모드에 사용됩니다\\(...\\)은 인라인 모드에 사용됩니다(슬래시와 괄호 사이에 공백이 없습니다).
로컬에서 Pull requests를 관리하는 방법은 무엇인가요?
PR 번호가 42라고 가정해 보겠습니다.
git fetch origin refs/pr/42:pr/42
git checkout pr/42
# Do your changes
git add .
git commit -m "Add your change"
git push origin pr/42:refs/pr/42Draft mode
Draft mode는 “Advanced mode”에서 새 Pull request를 처음 생성할 때 기본 상태입니다. 이 상태에서는 다른 기여자가 해당 Pull request가 작업 중임을 알 수 있으며, 병합할 수 없습니다. 브랜치가 준비되면 “Publish” 버튼을 눌러 Pull request의 상태를 “Open”으로 변경하면 됩니다. 게시한 후에는 Draft mode로 되돌릴 수 없습니다.
Pull request ref 삭제
Pull request가 닫히거나 병합되면, 해당 Pull request와 연관된 git ref(PR의 커밋을 저장하는 브랜치)를 삭제하여 저장 공간을 확보할 수 있습니다.
PR을 닫거나 병합한 후, 토론 하단에 해당 ref를 삭제하면 해제될 수 있는 예상 저장 용량을 표시하는 알림이 표시됩니다. Delete ref 버튼을 클릭하여 PR의 git ref를 영구적으로 삭제하고 저장 공간을 확보합니다.

메인 브랜치가 스쿼시(squash)되고 이후 파일이 삭제된 경우 특히 유용합니다. 해당 파일은 PR 자체에 의해 추가되지 않았더라도 PR 브랜치의 히스토리에 남아 있어, 해제될 수 있는 저장 공간을 차지합니다.
PR ref를 삭제하는 작업은 되돌릴 수 없습니다. 삭제 후에는 더 이상 로컬에서 해당 PR의 커밋을 가져오거나 체크아웃할 수 없습니다.
Pull requests 고급 사용법
git 저장소에서 변경 사항은 어디에 저장되나요?
Pull requests는 포크와 브랜치를 사용하지 않고, 소스 저장소에 직접 저장되는 refs라는 이름의 사용자 지정 “브랜치”를 사용합니다.
Git References는 태그와 브랜치를 이미 저장하는 git의 내부 메커니즘입니다.
브랜치가 아닌 커스텀 ref(예: refs/pr/42)를 사용하는 장점은, 리포지토리를 클론하는 사용자(리포지토리 “owner” 포함)가 기본적으로 이를 가져오지 않지만, 필요할 때 언제든지 가져올 수 있다는 것입니다.
모든 Pull requests 가져오기: git 마법사들을 위해 🧙♀️
로컬 refspec를 조정하여 모든 Pull requests를 가져올 수 있습니다:
- Fetch
git fetch origin "refs/pr/*:refs/remotes/origin/pr/*"- ref을 추적하는 로컬 브랜치를 생성합니다
git checkout pr/{PR_NUMBER}
# for example: git checkout pr/42- 로컬 변경 사항을 만든 경우, PR ref에 푸시하려면:
git push origin pr/{PR_NUMBER}:refs/pr/{PR_NUMBER}
# for example: git push origin pr/42:refs/pr/42