2009-02-08 7 views
4

여기에 초보자가 있어야합니다. 현재 체크 아웃 된 파일이 모든 변경 사항의 최신 버전이되도록 두 저장소를 동기화하는 방법이 있습니까?서버와 파일을 동기화하려면

Desktop  Server 
-------  ------ 
Change_X  Change_Y 

그리고 약간의 "마법"명령을 입력하고자 다음 변화는 문제의

Desktop  Server 
-------  ------ 
Change_X  Change_X 
Change_Y  Change_Y 

하나는 바탕 화면이다 병합 :

내가 가지고는이입니다 NAT 뒤에있는 Windows 컴퓨터이며, sshd를 설치하지 않아도됩니다. 기본적으로 저는 데스크탑에서 서버로 ssh를 사용하여 모든 작업을 수행하고 싶습니다.

이것은 git으로하는 것이 쉽지 않은 것처럼 보이지만 어떻게해야 할지를 알 수 없습니다.

는 (I 트릭을 할 것 git push 생각하지만, 그것은 바탕 화면에서 변경 사항이 서버에 도착하지 않도록에 현재 체크 아웃 된 지점, 변경하지 않는 밝혀)

가 있는가 자식하거나 트랙에서 벗어나는 방법?

솔루션

: 나는 here에서 업데이트 후 스크립트를 다운로드하고 해당 서버에있는 후크 디렉토리에 넣어, 지금 git push는 변화와 업데이트 서버를 발생합니다.

git pull server:scripts/ master 
git push server:scripts/ 

이 변화에 서버의 작업 복사본을 업데이트합니다 후크를 포스트 커밋 만들 수 있어야한다

답변

3

(scripts 내가 동기화있어 폴더입니다) : 그래서 기본적으로 "마법의 명령"에 해결 (나는 수은과 정확히 동일했기 때문에 git에서도 가능할 것이라고 가정했다.) 그래서 밀어 넣으면 작업 복사본이 자동으로 업데이트됩니다.

git up 또는 git에 해당하는 명령이 실행되는 커밋 후크를 만듭니다.
미안하지만 다른 말을 해야할지 모르겠습니다.
upd : official git faq에 몇 가지 설명이 있습니다.

1

문제 중 하나는 바탕 화면이 NAT 뒤에있는 Windows 컴퓨터이고, 나는 그것에 sshd를 설치하지 않아도되고 싶습니다. 기본적으로 저는 데스크탑에서 서버로 ssh를 사용하여 모든 작업을 수행하고 싶습니다. 당신이 NAT 뒤에 있다면

하지 귀하의 질문에 직접 대답은하지만, 할 수있는 쉬운 일이 대신 SSHD 서버의, 퍼티 또는 무언가를 사용하여 역 SSH 터널을 실행하는 것입니다.

ssh -R3333:127.0.0.1:9418 <user>@<server> 

지금, <server>의 포트 3333에 연결은 당신의 NAT-ED 기계의 자식 포트에 전달됩니다.

관련 문제