[git] Windows의 로컬 파일 시스템에서 GIT 복제 저장소

GIT에 관해서는 완전한 Noob입니다. 지난 며칠 동안 첫 발걸음을 내딛었습니다. 랩톱에 저장소를 설정하고 SVN 프로젝트에서 트렁크를 가져 왔습니다 (지점에 문제가 있었지만 작동하지 않음).

이제 랩탑에서 메인 데스크탑으로 당기거나 밀어 낼 수 있기를 원합니다. 노트북을 사용하는 이유는 하루에 2 시간 씩 여행하면서 기차에서 편리하며 좋은 일을 할 수 있습니다. 그러나 집에있는 메인 머신은 개발하기에 좋습니다. 집에 도착했을 때 랩탑에서 메인 컴퓨터로 밀거나 당길 수 있기를 원합니다. 이 작업을 수행하는 가장 간단한 방법은 LAN을 통해 코드 폴더를 공유하고 수행하는 것입니다.

git clone file://192.168.10.51/code

불행히도 이것은 나를 위해 작동하지 않는 것 같습니다 :

그래서 git bash cmd를 열고 위의 명령을 입력하면 C : \ code (두 컴퓨터의 공유 폴더)에 있습니다.

Initialized empty Git repository in C:/code/code/.git/
fatal: 'C:/Program Files (x86)/Git/code' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

가장 간단한 방법으로 두 컴퓨터간에 저장소를 공유하는 방법

공식 저장소 지점이 될 다른 위치와 다른 개발자 및 CI 서버 등이 가져올 장소가 있습니다. 이것은 두 컴퓨터에서 동일한 리포지토리에서 작업 할 수 있도록하기위한 것입니다.

Sebastian의 제안에 따라 다음을 얻습니다.

C:\code>git clone --no-hardlinks file://192.168.10.51/code
Initialized empty Git repository in C:/code/code/.git/
fatal: 'C:/Program Files (x86)/Git/code' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

** 편집-답변 **

도움이 된 모든 덕분에. 나는 드라이브 매핑을 시도했지만 작동했지만 매핑하지 않고 다시 시도 할 것이라고 생각했습니다. 최종 결과는 다음과 같습니다.

git clone file://\\\\192.168.0.51\code

이것은 훌륭하게 작동했습니다.

감사



답변

파일 프로토콜에 UNC 경로를 적용하여 원격 URL을 지정할 수 있습니다 . 이를 위해서는 네 개의 슬래시를 사용해야합니다.

git clone file:////<host>/<share>/<path>

예를 들어, 기본 머신에 IP 192.168.10.51 및 컴퓨터 이름 main이 있고 공유 이름 code이 git 저장소 인 공유 가있는 경우 다음 명령 모두 동일하게 작동해야합니다.

git clone file:////main/code
git clone file:////192.168.10.51/code

Git 저장소가 서브 디렉토리에있는 경우 다음 경로를 추가하십시오.

git clone file:////main/code/project-repository
git clone file:////192.168.10.51/code/project-repository


답변

$ git clone --no-hardlinks /path/to/repo

위의 명령은 git 저장소가있는 디렉토리에 POSIX 경로 표기법을 사용합니다. Windows의 경우 디렉토리 C:/path/to/repo.git디렉토리입니다.

C:\some\dir\> git clone --local file:///C:/path/to/repo my_project

저장소가에 복제됩니다 C:\some\dir\my_project. file:///부품을 생략하면 --local옵션이 내포됩니다.


답변

호스트 이름이있는 대답은 효과가 없었지만 이것은 효과가있었습니다.

git clone file : ////home/git/repositories/MyProject.git/


답변

file : //를 사용 하여이 작업을 성공적으로 수행했지만 절대 경로를 나타내는 슬래시가 하나 더 있습니다.

git clone file:///cygdrive/c/path/to/repository/

필자의 경우 Windows 용 Cygwin에서 Git을 사용하고 있는데 경로의 / cygdrive / c 부분으로 인해 볼 수 있습니다. 경로를 약간 조정하면 모든 git 설치와 함께 작동해야합니다.

리모컨 추가는 같은 방식으로 작동합니다

git remote add remotename file:///cygdrive/c/path/to/repository/


답변

공유를 네트워크 드라이브로 매핑 한 다음

git clone Z:\

대부분 추측 일뿐입니다. 나는 항상 ssh를 사용 하여이 일을합니다. 물론이 제안을 따르면 랩톱을 밀거나 당길 때마다 해당 드라이브를 매핑해야합니다. 창문 아래에서 작동하도록 ssh를 어떻게 조작하는지 잘 모르겠지만이 작업을 많이 수행하려면 조사 할 가치가 있습니다.


답변

내 자식 버전 (1.7.2) 때문인지 확실하지 않지만 머신 이름과 IP 옵션을 사용하여 위에 나열된 접근 방식이 작동하지 않습니다. 중요하지 않을 수도있는 추가 세부 사항은 리포지토리가 초기화되어 다른 시스템에서 푸시 한 베어 리포지토리라는 것입니다.

위와 같은 명령으로 위에서 설명한대로 project1을 복제하려고했습니다.

$ git clone file:////<IP_ADDRESS>/home/user/git/project1
Cloning into project1...
fatal: '//<IP_ADDRESS>/home/user/git/project1' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

$ git clone file:////<MACHINE_NAME>/home/user/git/project1
Cloning into project1...
fatal: '//<MACHINE_NAME>/home/user/git/project1' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

무엇을 했던 나를 위해 작업하는 것은 간단한 일이었다 :

$ git clone ../git/project1
Cloning into project1...
done.

참고-복제 된 리포지토리가 베어졌지만 (git repo의 내부와 달리) 내가 기대했던 모든 실제 코드 / 이미지 / 리소스 파일이있는 ‘정상’클론이 생성되었습니다.


답변

절대 경로 또는 상대 경로를 입력하십시오.

예를 들어 아래 첫 번째 경로는 절대 경로를 사용합니다.

(이것은 리포지토리와 하위 폴더로 백업을 포함하는 폴더 내부에 있습니다. 또한 백업 폴더가 이미 포함되어 있으면 수정되지 않으며 새 폴더가 없으면 새 폴더가 생성됩니다)

~/git$ git clone --no-hardlinks ~/git/git_test1/   ~/git/bkp_repos/

다음은 상대 경로를 사용합니다.

~/git$ git clone --no-hardlinks git_test1/   bkp_repos2/