GitHub의 분기와 분기의 차이점
이 문서에서는 GitHub에서 분기와 분기의 차이점에 대해 설명합니다. 코딩의 맥락에서 현재 시대는 협업에 더 의존합니다.
가장 많이 사용되는 협업 도구 중 하나는 GitHub입니다. GitHub의 분기 및 분기는 프로젝트에서 공동 작업할 때 가장 유용한 유틸리티 중 일부입니다.
그러나 아래에서 설명하는 것처럼 두 가지 사용 사례와 의미가 다릅니다.
GitHub의 분기와 분기의 차이점
GitHub에서 분기하려면 개인 계정에 공용 리포지토리의 복사본을 생성해야 합니다. 이 개념은 코드베이스의 다양한 진화를 장려합니다.
다양한 진화는 주제에 대해 광범위하게 실험하려는 사람들에게 이상적입니다.
반면에 분기는 원점에서 분기를 만드는 것을 포함합니다. 코드베이스의 수렴 진화를 장려합니다.
대부분의 비즈니스 기업은 팀의 생산성에 긍정적인 영향을 미치기 때문에 분기를 선호합니다.
발산 대 수렴 진화
오픈 소스 세계에서 코드베이스가 동시에 두 개의 프로젝트로 분할될 수 있다는 것을 알아차렸을 것입니다. Linux 코드베이스를 예로 들어 보겠습니다.
이제 Linux RedHat과 같은 여러 포크가 있지만 모두 조상을 공유합니다. 이것은 코드베이스의 다양한 진화의 예입니다.
이러한 반복은 일시적인 개발 경로가 아니며 서로 통합되지 않는다는 점은 주목할 가치가 있습니다.
반면에 분기는 임시 개발 경로입니다. 분기는 코드가 마스터
분기에 병합될 때 완료되므로 수명이 짧습니다.
이것이 그들이 코드베이스의 수렴적 진화를 장려하는 이유입니다.
포크는 새 저장소를 생성합니다.
GitHub를 사용하면 버튼 하나만 누르면 쉽게 포크할 수 있습니다. 이 작업은 분기 시점까지 저장소의 복제본을 생성합니다.
언제 포크하는 것이 이상적입니까?
부모와 재결합하지 않고 독립적인 프로젝트를 만들고 싶을 때입니다.
프로젝트의 좋은 출발점이 되는 GitHub의 프로젝트를 발견할 수 있습니다. 그런 시점에서 포크가 이상적입니다.
GitHub에서 분기
분기는 코드베이스에서 구성 영역 역할을 합니다. 원점과 병합하려는 의도로 기능 작업을 위해 분기를 일시적으로 사용합니다.
GitHub에서 브랜치를 생성하려면 모든 브랜치 보기
로 이동하여 새 브랜치
를 누르십시오.
로컬에서 새 분기를 생성하려면 아래 그림과 같이 git checkout
명령을 사용합니다.
$ git checkout -b <new branch>
분기 및 분기 비용은 얼마입니까
Git은 변경된 파일만 비교하기 때문에 브랜치를 병합하는 것이 더 쉽고 빠릅니다. 반면에 포크는 더 비싸다고 생각할 수 있습니다.
포크를 원래 부모와 병합할 때 Git은 두 저장소를 비교해야 합니다. 분기는 전체 부모 리포지토리의 복제본을 생성한다는 점을 기억하십시오.
새 분기의 파일 크기는 상위 분기에 따라 다릅니다. 포크는 원격 서버에서 더 많은 공간을 차지합니다.
더 많은 가시성과 운영 위험이 적기 때문에 비즈니스 기업의 경우 분기가 권장됩니다.
이유는 다음과 같습니다.
프로젝트의 다른 기능을 작업하는 10명의 팀이 있다고 가정해 보겠습니다. 각 개발자가 포크를 만들 때 우리는 10개의 서로 다른 독립적인 저장소를 갖게 됩니다.
이렇게 하면 한 곳에 10개의 리포지토리가 모두 있지 않으면 모든 사람이 무엇을 하고 있는지 보기가 어렵습니다.
코드 변경 사항이 10개의 서로 다른 저장소에 있기 때문에 이것은 진정한 협업 환경이 아닙니다.
개발자가 분기가 아닌 10개의 서로 다른 분기를 선택했다면 모든 커밋이 하나의 저장소에 있기 때문에 협업 공간이 될 것입니다. 이 주장은 가시성 문제를 해결합니다.
운영 위험에 대해 이야기할 때 다음 예를 들어보십시오. 개발자가 10개의 포크를 만들었고 어떤 이유로 하나 또는 두 개를 사용할 수 없습니다. 이는 다른 개발자가 다른 개발자가 도달한 위치를 알지 못하는 지식 관리의 위험을 초래합니다.
항상 그런 것은 아니지만 분기 중심 워크플로를 통해 피할 수 있는 위험은 여전히 있습니다.
분기 중심 워크플로우는 비즈니스 환경에 가장 적합하고 분기는 공개 협업 및 실험에 가장 적합합니다. 모두 하나의 목표를 향해 노력하고 있다면 지점 중심 워크플로우로 이동하십시오.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn