내 로컬 저장소를 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 -A
git 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
'IT' 카테고리의 다른 글
Git Gui에 "당기기"가 없습니까? (0) | 2020.09.14 |
---|---|
사용자가 뒤로 버튼을 사용하여 페이지로 이동했는지 여부를 감지합니까? (0) | 2020.09.14 |
옵션이 설정되면 null을 반환하는 BitmapFactory.decodeStream (0) | 2020.09.14 |
Java에서 cURL을 사용하는 방법은 무엇입니까? (0) | 2020.09.14 |
정적 메서드 대신 싱글 톤을 사용하는 이유는 무엇입니까? (0) | 2020.09.14 |