개발관련/Git

git branch, fork, fetch, merge, rebase 및 clone의 차이점

Rateye 2022. 3. 26. 16:49
728x90
반응형
질문 : git branch, fork, fetch, merge, rebase 및 clone의 차이점은 무엇입니까?

Git에서 브랜치, 포크 및 클론의 차이점을 이해하고 싶습니까?

git pull 아닌 git fetch 를 수행하는 것은 무엇을 의미합니까?

merge 과 비교하여 rebase 는 무엇을 의미합니까?

개별 커밋을 어떻게 함께 스쿼시 할 수 있습니까?

그들은 어떻게 사용되며, 왜 사용되며 무엇을 나타 냅니까?

GitHub는 어떻게 계산됩니까?

답변

복제본은 단순히 저장소의 복사본입니다. 표면적으로 그 결과는 다른 저장소에서 소스 코드를 다운로드 svn checkout Subversion과 같은 중앙 집중식 VCS와 Git과 같은 DVCS의 차이점은 Git에서 복제 할 때 실제로 모든 기록 및 분기를 포함하여 전체 소스 저장소를 복사한다는 것입니다. 이제 컴퓨터에 새 리포지토리가 있고 커밋 한 모든 커밋이 해당 리포지토리로 이동합니다. 다른 저장소 (또는 원래 저장소)로 커밋을 푸시하거나 공개적으로 액세스 할 수있는 경우 누군가가 저장소에서 커밋을 가져올 때까지 아무도 변경 사항을 볼 수 없습니다.

분기는 저장소 내에있는 것입니다. 개념적으로는 개발의 스레드를 나타냅니다. 일반적으로 마스터 브랜치가 있지만 일부 기능 xyz를 작업중인 브랜치와 버그 abc를 수정하는 브랜치가있을 수도 있습니다. 브랜치를 체크 아웃하면 커밋은 해당 브랜치에 남아 있으며 해당 브랜치와 병합하거나 리베이스 할 때까지 다른 브랜치와 공유되지 않습니다. 물론 Git은 브랜치가 어떻게 구현되는지에 대한 기본 모델을 볼 때까지 브랜치와 관련하여 약간 이상해 보입니다. 직접 설명하기보다는 (이미 너무 많이 말 했음, methinks), Git 웹 사이트에서 가져온 Git 모델 분기 및 커밋 방법에 대한 "컴퓨터 과학"설명에 연결하겠습니다.

http://eagain.net/articles/git-for-computer-scientists/

포크는 실제로 Git 개념이 아니라 정치적 / 사회적 아이디어입니다. 즉, 어떤 사람들이 프로젝트 진행 방식에 만족하지 않으면 소스 코드를 가져와 원래 개발자와 별도로 직접 작업 할 수 있습니다. 그것은 포크로 간주됩니다. Git은 모든 사람이 이미 자신의 소스 코드 "마스터"복사본을 가지고 있기 때문에 쉽게 포크 할 수 있습니다. 따라서 원본 프로젝트 개발자와의 관계를 끊는 것만 큼 간단하고 SVN과 관련하여 공유 저장소에서 기록을 내보낼 필요가 없습니다. .

편집 : GitHub와 같은 사이트에서 사용되는 "포크"의 현대적인 정의를 알지 못했기 때문에 자세한 내용은 내 아래 의 Michael Durrant의 답변과 의견을 참조하십시오.

출처 : https://stackoverflow.com/questions/3329943/what-are-the-differences-between-git-branch-fork-fetch-merge-rebase-and-clon
728x90
반응형