IT

내 로컬 저장소를 git-pull에 사용하려면 어떻게해야합니까?

lottoking 2020. 9. 14. 21:22
반응형

내 로컬 저장소를 git-pull에 사용하려면 어떻게해야합니까?


문제없이 작업해온 작업 복사본 저장소가 있습니다. 이 저장소의 출처는 GitHub에 있습니다.

내 작업 복사본 저장소를 내 빌드 머신 (다른 물리적 호스트의 VM)의 오리진으로 사용할 수 있습니다. 그래야 작업 복사본에 대한 커밋이 다음을 거치지 테스트 빌드 머신에서 빌드되고 될 수 있습니다. 먼저 GitHub. 나는 이미 GitHub 저장소에 대한 빌드를 가지고 이것이 "골든"저장소 / 빌드가되기를 바랍니다. 즉, 다음 내용이 GitHub에 대한 빌드가 통과 보장해야합니다.

Git URL에 대한 문서를 본 결과 URL 형식으로 사용하는 옵션이 있음을 확인했습니다 git://host.xz[:port]/path/to/repo.git/(예 : git-clone 문서 참조 ). 최소한의 구성으로 가능한 가장 간단한 방법으로 작업을 수행하고 싶습니다. 빌드 머신에 게시하기 SSH 데몬이나 웹 서버를 접근 할 수 없습니다.

Windows 7 x64 RC를 실행 중이고 MSysGit 및 TortoiseGit이 설치되어 있고 방화벽에서 Git의 기본 포트 (9814)를 열었습니다. 작업 복사본 저장소가에 있고 호스트 D:\Visual Studio Projects\MyGitRepo이름이 devbox입니다. 빌드 머신은 Windows Server 2008 x64입니다. 관련 출력과 함께 빌드 시스템에서 다음 명령을 시도했습니다.

D:\Integration>git clone "git://devbox/D:\Visual Studio Projects\MyGitRepo"
Initialized empty Git repository in D:/Integration/MyGitRepo/.git/
devbox[0: 192.168.0.2]: errno=No error
fatal: unable to connect a socket (No error)

내가 뭔가를 놓치고 있습니까?


가져올 수있는 다섯 가지 가능성이 있습니다.

  • 로컬 파일 시스템 : git clone /path/to/repo또는 git clone file://path/to/repo. 네트워크에 작성 파일 시스템이있는 경우 가장 적지 만 네트워크를 작업으로 사용하지 않습니다. (이것은 Joakim Elofsson이 제안한 거의 정확한 솔루션입니다 )
  • HTTP 프로토콜 : git clone http://example.com/repo. 당신이 필요한 모든 웹 서버를, 당신은 또한 (후크, 아마도 자동) 실행해야 할 업데이트-서버 정보를 "바보"프로토콜을 통해 통합 / 가져 오는 데 필요한 정보를 생성 할 수 있습니다.
  • SSH : git clone ssh://example.com/srv/git/repo또는 git clone example.com:/srv/git/repo. SSH 서버 (SSH 데몬)를 설정하고 클라이언트에 SSH를 설치해야합니다 (예 : MS Windows의 PuTTY).
  • git 프로토콜 : git clone git://example.com/repo. 서버 에서 git-daemon 을 실행해야 합니다. 자세한 내용은 설명서를 참조하십시오 (서비스로 언어 필요없이 가져옴). git-daemon은 git의 일부입니다.
  • bundle : git-bundle 명령을 사용하여 서버에서 많은 생성하고 , 어떤 방식 으로든 (USB를 통해도) 클라이언트 컴퓨터로 전송하고 다음을 사용하여 복제합니다 git clone file.bndl(복제가 작동하지 않습니다 "git init", "git remote 추가 "및"git fetch ").

귀하의 예제에서 누락 된 것은 아마도 서버에서 git-daemon을 실행 중일 것입니다. 또는 git-daemon을 잘못 구성합니다.

불행히도 MS Windows에서 git-daemon을 서비스로 실행하는 데 도움을 드릴 수 없습니다. 그러나 git-daemon이 작동하지 않는다는 것은 msysGit의 마지막 버전에 대한 발표 내용은 없습니다.


Jakub Narębski의 답변이 원래 질문과 일치하는 다른 방법이 있습니다. 어디처럼 github에서 복제 할 수 있습니다. 그런 다음 로컬 저장소에서 일회성 풀을 수행해야 다음을 수행하십시오.

git pull /path/to/repo master

(마스터 대신 브랜치 이름을 입력 할 수 있습니다.)


ssh 경로는 잘 작동하지만 원격 ssh 서버가 필요합니다. Windows 플랫폼이있는 경우 Cygwin은 Git과 함께 작동하는 작동하는 ssh 서버를 제공하지만 Cygwin Git을 사용하는 경우 수동으로 Git을 업그레이드합니다 ( http://alecthegeek.wordpress.com/2009/01/21/top- tip에 몇 가지 힌트를 작성했습니다. -upgrade-git-on-cygwin / ).


최근에 실제 파일 업로드를 수행하기 위해 사이트 복사를 사용하여 HTTP 서버에 복제하도록 git 프로젝트 중 하나를 변경했습니다.

매우 중요한 git update-server-info. .git 디렉토리를 서버의 http 액세스 가능한 디렉토리로 시작하십시오. 나는 상당히 일반적인 'project.git'을 사용했습니다.

http : // site / project-git의 힘내 풀은 챔피언처럼 작동하며 사이트 카피는 webdav도 지원하지만 FTP 액세스를 제외하고는 서버에 아무것도 필요가 없습니다.

그러나 여러 컴퓨터를 동기화 상태로 유지하지 못하기 때문에 사이트 복사를 사용하지 않는 것이 좋습니다. 내 프로젝트의 경우 HTTP 저장소는 읽기 전용이며 골드 업데이트는 하나의 시스템에서만 제공 충분히 잘 작동합니다.


같은 경로가 권한

C:\Project\

당신은 한 git init당신은 또한 폴더가 있으므로, 이미

C:\Project\.git\

이제 새 폴더를 만듭니다.

C:\.git\

해당 폴더로 이동하여 실행하고 git clone --bare ..\Project( 베어 가 중요 함) 폴더
로 돌아가서 . 이제 , 그리고 .C:\Project\git remote add-url local ..\.git\Project
git add -Agit commit -m "HelloWorld"git push local master

당신은 공유 할 수 있습니다 Project, 폴더에 연결 Z:하고 할 git clone Z:\Project- 당신은 지금 사용 git pull origin master하고 git push origin master한 컴퓨터에서 다른 컴퓨터로 푸시 / 풀 변화에.


원격 호스트가 동일한 Windows 네트워크에있는 경우 (예 : \ remotehost로 액세스 할 수 있음) 탐색기에서 네트워크 드라이브를 매핑 할 수 있습니다 (예 : z :-> \ remotehost \ repodir). 그런 다음 'git clone / 프로젝트 복제를위한 z / myproject '

참고 URL : https://stackoverflow.com/questions/978052/how-can-i-make-my-local-repository-available-for-git-pull

반응형