2010-08-20 4 views
2

힘내는 소스 제어 시스템을 배포하고 있습니다. 중앙 저장소가없는 두 개발자를 연결하는 방법.git 리포지토리

우리 팀은 Github을 사용하며 두 개발자가 동일한 지점에서 작업하기를 원한다면 지점이 원격에 연결되어 있어야 액세스가 가능합니다 ... 그렇지 않습니까?

개발자가 다른 개발자의 로컬 저장소에서 가져올 수 있습니까?

답변

5

개발자가 다른 개발자의 로컬 저장소에서 가져올 수 있습니까?

예. 다른 개발자의 저장소 (예 : .git 디렉토리의 실제 파일)에 대한 읽기 전용 액세스 (nfs, ssh, ...)로 충분합니다. 또는 개발자가 git 서버를 설치하면 다른 서버에서 서버를 가져올 수 있습니다.

메일로 패치를 보내지는 않을지 모르겠습니다.

+0

어, 친구가 그것을 시도했습니다. 루프를 뛰어 넘지 않으면 작동하지 않습니다. 두 개발자가 밀어 넣기/끌기에 사용할 수있는 컴퓨터 중 하나에 적어도 "중앙"저장소가 필요합니다. Git 1.7+는 베어 랜드가 아닌 저장소에 쓰려고 할 때 경고 메시지를 표시합니다. – ZeissS

+1

@ ZeissS : * 푸시 *를 시도하면 경고가 표시됩니다. 반면에, * 당기는 * 훌륭한 작품. 나는 항상 동료의 저장소에서 변경 사항을 체리 선택합니다. –

+0

@zeiss, 중앙 repo없이 잘 작동합니다. 그러나 실제로 현재 사용중인 지점에서는 무언가를 밀어 낼 수 없습니다 ("서버"쪽에서 체크 아웃 됨). 중앙 저장소가 작동하는 이유입니다. 중앙에 있기 때문에가 아니라 체크 아웃을하기 때문에. 두 개발자가 모두 로컬 브랜치에서 작업하고 원격지에있는 작업을 푸시하면 (아무도 체크 아웃하지 않음) 작동합니다. – mb14

1

두 개발자가 얼마나 잘 연결되어 있는지에 따라 다릅니다. 같은 컴퓨터에서 작업하는 경우 다른 사용자의 복제본에서 직접 가져올 수 있습니다. 동일한 네트워크에서 작업하는 경우 git daemon과 같은 간단한 서버를 설정할 수 있습니다.

방화벽과 겹침 뒤에 다른 네트워크를 사용하는 경우 공유 공통 서버를 사용하여 변경 사항을 공유 할 수 있습니다. 또는 git format-patchgit am을 사용하여 서로에게 패치를 전자 메일로 보낼 수 있습니다.

+1

동일한 네트워크가 ssh 액세스를 허용 할 수도 있습니다. 아마도 'git-daemon'보다 쉽습니다. – Cascabel

0

예, git remote add ... 명령을 사용하여 각 사용자에게 표시되는 각 사용자 저장소를 추가해야합니다. 분명히, 그들은 서로 다른 컴퓨터를 볼 수 있어야합니다. ssh를 설정하거나 git daemon을 사용해야 할 수도 있습니다.

0

이미 Github을 사용하고 있다면 두 지점 모두에서 동일한 작업을 수행하는 가장 쉬운 방법은 Github에서 지속적으로 푸시/풀링하는 것입니다. 서로의 기계를 밀거나 당기는 것은 빨리 털이 나올 것이고 길 아래에서 더 많은 두통을 낳을 것입니다. 물론, 다른 서버를 사내 서버에서 사용하거나 한 대의 컴퓨터 또는 두 대의 컴퓨터 모두에 베어 레포를 설치할 수는 있지만, 이는 지나치게 복잡한 설정으로 이어질 수 있으며 소스 관리에 많은 시간과 노력이 필요할 수 있습니다.

#On Dom's machine: 
git checkout -b cool_feature 
git push origin cool_feature #assumes origin is github 

#on John's machine: 
git checkout -b cool_feature 
git pull origin cool_feature 

:

먼저 로컬 컴퓨터에 지점을 만들고 Github에서에 밀어, 당신 (돔)와 같은 분기에 다른 개발자 (, 우리가 그에게 전화 할게 존) 사이에 시작하려면 이제 로컬 호스트에서 동일한 repo 복사본을 모두 얻을 수 있습니다. 의지대로 개발하고 두 사람이 자주 커밋하고 커밋을 Github으로 푸시해야합니다. 또한 Github에서 자주 당기십시오.

+0

단점과 내가 피하려고 노력하는 부분은 github에 정리가 필요합니다. 완료 후 각 지형지 물을 정리하고 삭제해야합니다. –