깃허브에서 포킹과 클로닝의 차이점은 무엇입니까?
프젝로의하것하과다트는포것차알싶의습니고이을점는크를▁i▁and▁a다니싶습▁doing알▁project▁doing▁betweenrences▁the고'▁a▁know▁diffe▁liked▁to차이▁of▁fork▁a을.clone
그 중에서.
프로젝트를 포크한 경우에만 GitHub을 통해 풀 요청을 보낼 수 있습니까?
리포지토리를 포킹한다고 하면 기본적으로 GitHub ID로 리포지토리의 복사본을 만드는 것입니다.여기서 주목해야 할 주요 사항은 원래 리포지토리에 대한 변경 내용이 분기된 리포지토리에 다시 반영된다는 것입니다(기본값을 가져오거나 다시 지정해야 함).그러나 분기된 리포지토리를 변경할 경우 원래 리포지토리에 대한 꺼내기 요청을 명시적으로 만들어야 합니다.원래 리포지토리의 관리자가 꺼내기 요청을 승인하면 변경 내용이 기존의 원래 코드 기반과 커밋/병합됩니다.이때까지 변경사항은 포크한 복사본에만 반영됩니다.
간단히 말해서:
Fork & Pull Model을 사용하면 누구나 기존 리포지토리를 포크하고 원본 리포지토리에 대한 액세스 권한을 부여하지 않고도 변경 사항을 개인 포크로 푸시할 수 있습니다.그런 다음 프로젝트 유지 관리자가 변경 사항을 원본 저장소로 가져와야 합니다.
포킹 후에는 자신의 이름으로 된 리포지토리를 컴퓨터에서 로컬로 복제할 수 있습니다.변경한 후 분기된 저장소로 밀어넣습니다.그러나 원래 리포지토리의 변경 내용을 반영하려면 꺼내기 요청이 승인되어야 합니다.
다른 흥미로운 토론 몇 가지 -
GitHub 포크형 저장소를 업데이트하려면 어떻게 해야 합니까?
기본적으로 그렇습니다.A은(는) GitHub가 프로젝트를 복제하고 사용자 이름으로 등록하기 위한 요청일 뿐입니다. GitHub은 또한 두 저장소 간의 관계를 추적하여 두 프로젝트(및 다른 포크) 간의 커밋 및 풀을 시각화할 수 있습니다.
사용하지 않더라도 복제된 리포지토리에서 다른 사용자에게 꺼낼 것을 요청할 수 있습니다.fork
공개적으로 사용할 수 있게 하는 것은 직접 처리해야 합니다또는 개발자 패치 전송(참조)git format-patch
할 수 . 나무에 적용할 수 있습니다.
- 분기된 프로젝트는 온라인 리포지토리(리포)에 있습니다.
- 복제된 프로젝트는 로컬 컴퓨터에 있습니다(나는 보통 레포를 위조한 후 복제합니다).
온라인 레포를 커밋한 다음(또는 로컬 레포를 커밋한 다음 온라인 레포로 푸시) 풀 요청을 보낼 수 있습니다.
프로젝트 관리자는 기본 온라인 버전에서 변경 사항을 얻기 위해 이를 수락할 수 있습니다.
복제본을 사용하면 서로 다른 두 가지 버전의 리포지토리를 적절하게 복제하고 분리할 수 있습니다.하나의 repo가 수정되면 push 명령을 사용하여 새 내용을 다른 repo에 적극적으로 복사해야 합니다.그리고 다른 레포페치들의 변화들도 있었습니다.
서버에서 레포를 포크할 때 두 레포 모두 동일한 서버의 동일한 [고정 개체] 콘텐츠를 사용하므로 콘텐츠를 복제할 필요가 없습니다.'꼼수'는 각 사용자가 보고서의 전체 개인 사본을 가지고 있다고 믿도록 다양한 사용자 관점을 관리하는 것입니다.포크 사이의 푸시 및 페치는 사용자의 포인터를 업데이트하는 것입니다.
낮은 수준에서 git은 내부적으로 동일한 작업을 수행합니다.세 개의 서로 다른 파일이 있는 경우 각 파일은 다음을 포함합니다.Hello World
그런 다음 단순히 Hello World Blob의 단일 복사본을 '포크'하고 필요에 따라 세 곳에서 각각 제공합니다.
서버에서 포크를 사용할 수 있다는 것은 모든 사용자가 하나의 기본 레포를 공유하기 때문에 Github의 대용량 스토리지 허용량이 평균적으로 그리 크지 않다는 것을 의미합니다.
@Aniket Thakur의 대답은 매우 좋습니다.다음 질문에 대한 답변은 아직 없습니다.
프로젝트를 포크한 경우에만 GitHub을 통해 풀 요청을 보낼 수 있습니까?
아니요. 리포지토리에 기여하는 사용자는 로컬 복제본을 만들 수 있습니다.로컬 지점을 만듭니다.해당 분기에 커밋을 추가합니다.로컬 분기를 다시 github으로 밀어넣습니다(프로세스에서 원격 분기를 만듭니다).해당 분기를 마스터 분기(또는 원하는 분기)에 병합하도록 요청하는 끌어오기 요청을 만듭니다.
간단히 말해서, Forking은 "GitHub ID/프로파일 아래에서 복제"하는 것과 같습니다.포크는 몇 가지 예외를 제외하고 복제품보다 언제든지 좋습니다.분기된 리포지토리는 복제된 리포지토리와 달리 항상 모니터링되고 원래 리포지토리와 비교됩니다.이를 통해 변경사항을 추적하고, 꺼내기 요청을 시작하며, 원래 리포지토리의 변경사항을 분기된 리포지토리와 수동으로 동기화할 수 있습니다.
질문자가 암시한 것을 수행한 경우(포크 작업을 잊고 로컬에서 레포를 복제한 경우, 변경 사항을 적용한 경우, 이제 풀 요청을 발행해야 함), 다음과 같은 작업을 수행할 수 있습니다.
- 꺼내기 요청을 보낼 보고서를 포크합니다.
- 로컬 변경사항을 리모컨에 푸시
- 꺼내기 요청 발행
GitHub의 또 다른 이상하고 미묘한 차이는 포크의 변경 사항이 원래 레포에 입력될 때까지 작업 로그에 반영되지 않는다는 것입니다.게다가 포크를 적절한 클론으로 변경하려면 Github 지원부에 문의해야 합니다.
포크로 커밋했습니다.
포크로 한 커밋은 당신의 기여에 포함되지 않습니다.계산을 수행하려면 다음 중 하나를 수행해야 합니다.
꺼내기 요청을 열어 변경 사항을 상위 리포지토리에 병합합니다.포크를 분리하여 GitHub의 독립 실행형 저장소로 전환하려면 GitHub 지원부에 문의하십시오.포크에 포크가 있는 경우 지원팀에 포크가 저장소와 함께 새 네트워크로 이동해야 하는지 아니면 현재 네트워크에 남아 있어야 하는지 알려줍니다.자세한 내용은 "포크에 대하여"를 참조하십시오.
간단히 말해서, "fork"는 사용자 자신의 GitHub 계정에서 호스팅되는 프로젝트의 복사본을 만듭니다.
"Clone"은 컴퓨터의 git 소프트웨어를 사용하여 소스 코드를 다운로드하고 해당 컴퓨터에 대한 전체 버전 기록을 다운로드합니다.
언급URL : https://stackoverflow.com/questions/7057194/what-is-the-difference-between-forking-and-cloning-on-github
'source' 카테고리의 다른 글
"의존성 분석"에 머무르는 코코파드 (0) | 2023.06.26 |
---|---|
스프링카프카를 사용하는 카프카에 대한 데드 레터 큐(DLQ) (0) | 2023.06.26 |
Angular에서 http 요청이 끝날 때까지 기다리는 방법은 무엇입니까? (0) | 2023.06.21 |
ASP.NET 요청 헤더를 문자열로 덤프하는 방법 (0) | 2023.06.21 |
EC2에서 SQS 액세스 - 인스턴스 프로파일 대 역할 (0) | 2023.06.21 |