2011-01-18 2 views
7

"포크"의 기능은 기스틴에만 해당합니까? 또는 부모로부터 업데이트를 가져올 수있는 "복사 된"하위 저장소를 생성하기위한 순수한 자식 프로세스가 있습니까? 그렇다면 어떻게?힘내 - 기저귀없이 포크

편집 :git clone에 대해 혼동을해야합니다. git clone은 내 컴퓨터에서 저장소의 로컬 복사본을 가져 와서 commitpush을 변경 한 것입니다. 현재 gitosis으로 Google Repos를 호스팅하고 있습니다. 그래서 '포크 (fork)'를 따르고 싶다면 gitosis 서버 자체의 저장소를 복제 할 것인가? 그게 새로운 자식 주소를 만들겠습니까?

+2

로컬 복사본은 원본 데이터의 완전한 복제본입니다. 저것과 더 형식적인 포크 사이 기술적 인 구별이 없습니다. github fork 버튼은 repo를 복제 한 다음 DB에 항목을 저장하므로 그들이 수행 한 것을 기억할 수 있습니다. – Dustin

답변

7

아마 실제로 이것을하고 싶지 않을 것입니다. git의 브랜치는 매우 훌륭하고 가볍기 때문에 현재 가지고있는 저장소에 브랜치를 만들면 안된다. gitosis 저장소에서이 작업을 수행 할 수있는 유일한 이유는 액세스 제어를 재미있게 만드는 것입니다. 하나의 gitosis 저장소에서 가져온 연속 배포 또는 무언가를 가져 와서 동일한 코드에 커밋 액세스 권한을 부여하고 싶다면 그들이 배치 된 글에 글을 쓸 수 있기를 바랍니다. 다른 용도로 사용하려면 git branch으로 지점을 만들고 지점에서 모든 작업을 수행해야합니다. 또는 중앙 gitosis 아키텍처에서 github 저장소를 복제 한 다음 팀에서 작업하도록 할 수도 있습니다.

사전 경고를 감안할 때, 당신이 묘사하는 방식으로 "포크"를 만드는 가장 쉬운 방법은 gitosis 서버에서 별도의 저장소를 만드는 것입니다. 다른 이름으로 다른 저장소를 설정하십시오. 예를 들어 원본 저장소가 [email protected]:repo1.git 인 경우 [email protected]:repo1-fork.git에 다른 저장소를 설정하십시오. 액세스하려는 모든 사용자를 추가하십시오.

그런 다음 저장소를 복제합니다 : git clone [email protected]:repo1.git 그러면 repo의 전체 사본이 ./repo1에 저장됩니다. 로컬 버전에서 분기 된 저장소로 복사하려면 git push [email protected]:repo-fork.git --mirror을 사용할 수 있습니다.

6

Forking on Github은 git clone과 동일하지만 포크의 경우에는 git clone --mirror과 비슷합니다.

+0

업데이트/수정 된 질문. – jondavidjohn

+3

'git clone --mirror'가 궁금한 분들을 위해 : http://stackoverflow.com/questions/3959924 – Xavi

4

git clone 언제든지 포크를 효과적으로 만들었습니다. GitHub의 포크 기능이하는 유일한 일은 웹 페이지와 그래프, 통계 및 모든 좋은 것들을 사용하여 복제본을 GitHub 저장소로 만드는 것입니다.

또한 저장소를 복제하면 Git은 자동으로 원래 저장소를 기본 "업스트림"저장소 (리모컨 origin)로 만듭니다. 따라서 상자 밖으로 나오면 인수가없는 git pull은 원본에서 바로 잡아 당겨야합니다.

+0

updated/edited question. – jondavidjohn

2
# clone wanted repo 
git clone https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git 

# cd into created folder 
cd ORIGINAL_REPOSITORY 

# add your remote repository as origin 
git remote add origin https://github.com/my_user/my_repository.git 

# add original repository as upstream 
git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git 

# when want to pull from upstream just 
git pull upstream master 

# when want to create upstream pull-request just 
# https://git-scm.com/docs/git-request-pull 
# commit-hash - from where to start pull request 
git request-pull commit-hash [email protected]:my_user/my_repository.git