2010-05-26 4 views
122

솔직히 여기서 의미에 대해 명확하지 않습니다. 그것들은 모두 코드 + 역사 단위의 사본/변종에 관한 것이지만 과거에는 내가 말할 수 있을지 확신 할 수 없습니다. 이 논리 구조가 어딘가에 설명되어 있습니까?Git에서 Repository, fork, branch, clone, track 등의 단어는 무엇을 의미합니까?

+5

저는 Pro Git 책의 첫 번째 몇 장을 읽는 것이 좋습니다 (http://progit.org/book/). – ewall

+56

+1.git 튜토리얼의 상당수는 특정 단어의 의미 또는 git의 작동 방식을 설명하지 않고 특정 작업을 수행하는 방법을 보여줍니다. 이러한 주제를 다루는 리소스를 요청하는 것은 정당한 질문입니다. –

+12

소원 Daniel의 덧글을 +1 할 수 있습니다. 일부 용어 (예 : 저장소)의 의미는 분명해야하지만, 그 관계는 항상 (분기 vs. 분기)가 아니며, 실제 의미는 중앙 집중식 VCS에 익숙한 사람이 쉽게 오해 할 수 있습니다. 게다가 Pro Git의 "지점이란 무엇입니까?" 섹션 - 기본 사용자가 얼룩이나 나무에 대해 정말로 알고 싶습니까? 아니면 지점이 무엇인지를 정 성적으로 알고 싶습니까? – Cascabel

답변

137

저장소는 단순히 작업 내역이 저장되는 장소입니다. 종종 작업중인 파일의 하위 디렉토리 인 .git에 있습니다. 작업중인 파일의 가장 최근 상태 사본입니다.

프로젝트를 포크하는 경우 (특정 시점에 다른 사람의 저장소에서 소스를 가져 와서 변경 사항을 적용한 경우) 원격 저장소를 복제하여 복사본을 만든 다음 자신의 작업을 수행 할 수 있습니다 로컬 저장소 및 커밋 변경.

저장소 내에는 자신의 저장소에 효과적으로 분기하는 분기가 있습니다. 당신의 저장소는 당신의 저장소에 조상 커밋을 가지고있을 것이고, 당신의 변경과 함께 그 커밋으로부터 갈라지게 될 것이다. 나중에 분기 변경 사항을 병합 할 수 있습니다. 지점을 사용하면 여러 개의 다른 기능을 한 번에 작업 할 수 있습니다.

또한 원격 리포지토리의 개별 분기를 추적 할 수도 있습니다. 이렇게하면 다른 개인의 지점에서 변경 사항을 가져 와서 자신의 지점으로 병합 할 수 있습니다. 친구와 함께 새로운 기능을 함께 사용하는 경우 유용 할 수 있습니다.

온라인으로 훌륭한 git 관련 서적들이 많이 있습니다. 공식 자습서 및 커뮤니티 북뿐만 아니라 ProGitGit Magic을 살펴보십시오.

+0

물론 F 매뉴얼과 튜토리얼을 읽는 것이 중요합니다. 그러나 이것은 나에게 모든 것들을 요약 한 것 같습니다. 매우 감사! – brasofilo

+0

로컬 작업 디렉토리를 새 분기로 전환 할 수 있습니다 ("git checkout "). 이 경우 로컬 작업 디렉토리의 파일은 전환 할 분기의 내용으로 대체됩니다. 그러나 당신은 일을 잃어 버리지 않습니다. Git은 이전에 Git "데이터베이스"(숨겨진 .git 폴더)에서 변경 한 커밋 된 모든 변경 사항 ("git commit")을 저장하고 파일을 되돌릴 수있게합니다. – KrisWebDev

+3

필자는 역사적으로 어떤 VCS를 사용했는지에 관계없이 분기 및 분기가 두 개의 개별적인 것으로 간주된다는 특별한 언급이 필요하다고 생각합니다. 분기는 개발자간에 호의적이며 묵시적인 합의로 간주됩니다. 포킹은 프로젝트에서 일하는 개발자들이 어떤 점에 동의하지 않고 방법을 나누기로 결정했음을 암시하기 때문에 더욱 심각했습니다. 성공적인 포크는 일반적으로 양측이 합의에 도달 한 후에 하나의 프로젝트로 병합되었습니다. 그 이후로 Git (및 GitHub)는이 용어를 흐리게 처리했으며 두 용어는 기본적으로 같은 생각이지만 다른 방식으로 표현됩니다. – redteam316

12

나는 내 자신의 질문에 RTFM으로 대답 할 것입니다.

그러나 괜찮은 설명서 this을 읽으십시오. 저자가 말했듯이 :

“ 결론 나는 Git의 작동 방식을 이해한다면 실제로 Git을 사용할 수 있다는 결론을 내 렸습니다. 어떤 명령을 몇 번에 실행해야 하는지를 암기하는 것만으로도 단기간에 작동하지만 시간이 지나면 문제가 발생할 수 있습니다.

“ Git의 기존 자원의 절반은 불행히도 그 방법을 사용합니다. 즉, 어떤 명령을 실행할지를 안내하고, 명령을 모방하면 잘해야한다고 생각합니다. 나머지 절반은 모든 개념을 다루지 만 내가 본 것에서는 Git이 어떻게 작동하는지 이미 알고 있다고 가정하는 방식으로 Git을 설명합니다. ”

+0

이 소개는 http://www.sbf5.com/~cduan/technical/git/으로 옮겨졌습니다. 원래 URL은 현재 작동합니다. –

+1

이것은 컨텍스트 내에서 해당됩니다. 지금 당장 생산적으로 작업하거나 코드를 확인해야하는 경우 git 작동 방식에 대해 깊이 이해하지 않아도됩니다. 튜토리얼은 괜찮습니다. 이것이 제가 어떻게 자식에게로 갔는지입니다. 그러나 브랜치, 포크, 리베이스 및 기타 고급 작업을 생성하는 등 고급 기능이 필요한 경우에는 git 작동 방식을 알아야합니다. 특히 배경이 중앙 집중식 소스 제어에있는 경우 특히 유용합니다. – Phil

3

This GoogleTechTalk 또한 언어를 배우면서 실제로 무대 뒤에서 무슨 일이 일어나고 있는지 알아 힘내 환상적인 소개합니다. 그것은 Git에게 아주 일찍 기고 한 사람에 의해 주어졌고, 그는 Git에 소개의 방법으로 2007 년에이 이야기를했습니다. 이 대화를 보면 저장소, 포크, 지점 등과 같이 각 단어의 의미를 알 수있을뿐 아니라 각 장면이 만들어지고 병합 될 때 뒤에서 일어나는 일을 알 수 있습니다.

주소는 길지만 유익합니다. Git을 다른 버전 제어 시스템과 비교하여 Git이 만들어진 방식과 다른 컨트롤 시스템보다 비교 우위가 무엇인지에 대한 통찰력을 얻을 수 있습니다. 이야기가 오래 되더라도 일어 나고 실행하는 것은 매우 도움이됩니다. 나는 매뉴얼에 뛰어 들기 전에 이것을 보았습니다. 결과적으로 상황이 훨씬 더 합리적이 될 것이라고 믿습니다.

관련 문제