2010-12-08 5 views
1

Git을 사용하여 GitHub에 일부 코드를 게시하고 있습니다. Git을 처음 사용하는 순간이므로 필요한 순간 ​​만 알 수 있습니다. 나는 집에서 여러 컴퓨터를 사용하여 변경 작업을 수행하고 있습니다. GitHub으로 이동하기 전에 한 컴퓨터에서 다른 컴퓨터로 변경 사항을 적용 할 수 있습니까?"origin"이외의 곳으로 "push"

답변

3

당신은 다른 원격을 설정할 수 있습니다 다른 컴퓨터가있는 경우, 힘내 또는 HTTP 서버에서 실행중인 :

git remote add your-other-computer git://your.other.computer/... 
git push your-other-computer master 

내가 의해 (이 각 컴퓨터에 HTTP를 통해 읽기 전용 저장소를 호스트하기 위해 쉽게 찾을 수 있습니다 Apache 또는 IIS를 통해 나의 힘내 디렉토리를 공유), 다른 컴퓨터와 git pull에 로그온하십시오.

+0

을 ssh를 사용하면 뭐가 잘못 되었나요? HTTP를 통해 호스팅하는 것이 더 쉬울 것입니다. –

+0

어디에 있느냐에 따라 달라집니다 - Windows에는 IIS가 내장되어 있으며 홈 네트워크에는 SSH –

+0

의 보안이 필요하지 않지만 HTTP는 일반적으로 git/ssh 프로토콜보다 느립니다. – alternative

0

보관 용 계정을 사용하여 저장소를 동기화 할 수 있습니다. 그게 내가 현재하고있는 일이며, 잘 작동합니다. 그렇지 않은 경우 컴퓨터 중 하나를 일종의 서버로 사용해야합니다. SSH.

+0

공유하기 위해 드롭 박스를 사용하는 것은 시작하기 위해 git을 사용하는 것에 대한 카운터이며 변경을 느슨하게하는 좋은 방법 인 것 같습니다. – dhable

+0

무슨 뜻인지 알겠지만 Dropbox를 사용하여 서버에 푸시하기 전에 동기화하면 서버를 설정하는 것보다 훨씬 쉽습니다. 아직 문제가 없습니다. –

+1

@ Dan : 그래, 나는 그들 자신의 기계를 동기화하기 위해 아무런 문제없이 이것을하는 몇몇 개발자를 알고있다. 리포지토리에 지속적으로 리모컨을 추가하는 것보다 훨씬 쉽습니다. – coreyward

1

당신은 밀어 당신이 Github에서에 것처럼 다른 자식 저장소에서 가져올 수 있습니다 ... 그러나

git push [remote] [branch] 

, 당신은 비 베어 저장소에서 체크 아웃 지점에 밀어 수 없습니다.

즉, 데스크탑에서 내 노트북으로 변경 한 마스터 브랜치를 푸시하고 내 노트북에 이미 마스터 분기가 체크 아웃되어있는 경우, 힘내는이를 거부합니다. 이것은 당신이 일을 잃지 않도록하기 위해서이며, 그렇게하기가 쉽지 않기 때문입니다.

베어 리포지토리 (작업 트리 없음)를 실행하는 경우 물론이 문제와 관련하여 아무런 문제없이 푸시 할 수 있지만 다시 복제본을 수행하고 다시 푸시하지 않고 해당 리포지토리에서 작업 할 수는 없습니다 그것으로.

Harpyon에서 제안한 것처럼 Dropbox는 자신의 컴퓨터를 동기화하는 경우 사실 너무 나쁘지 않습니다. 나는 잠시 동안 그것을 해왔 던 정말로 현명한 개발자들을 알고 있습니다. 문제는 없습니다.

+0

그래서 dropbox (iDisk가 너무 깁니다.)에 "베어"레포를 만들고 거기에 변경 사항을 적용한 다음 다른 "워크 스테이션"에서 끌어 와야합니까? – Nippysaurus

+0

아니요, 보관 용 계정이 아닌 저장소와 동기화하는 경우를 제외하고 보관 용 보관 리포지토리를 밀거나 당기지 않습니다. 그렇지 않으면 같은 저장소에서 밀고 당길 것입니다. 이해가 되니? – coreyward

1

둘 중 하나가 노출 된 저장소가 아닌 경우 병합을보다 잘 제어 할 수 있으므로 푸시보다 끌어 오기 (또는 가져 오기)하는 것이 좋습니다. 이런 이유로 git는 coreyward가 지적한 것처럼 비 베어 저장소 (non-bare repository)의 체크 아웃 된 브랜치로 푸시 할 수 없다.

가장 좋은 방법은 아마 당신에서 끌어하려는 시스템에 git daemon을 설정하는 다음 원격 구성합니다 :

git remote add my-other-repo git://path/to/other/repo 

그런 다음 해당 저장소에서 뽑을 수 :

git checkout branch-you-want-to-be-on 
git pull my-other-repo