가 나는 REPO 만든 기본 REPO과 함께 복제되지 않습니다 : 그런 다음 서브 모듈을 생성자식 서브 모듈의 내용이
cd /home/myuser/public_html
git init
git remote add origin /usr/local/gitroot/myrepo.git
git commit --allow-empty -m "Initial commit"
, 같은 서버에 다음
git init --bare myrepo.git
을 생산하기위한 REPO을 만들어
cd subdirectory
git init
git add .
git commit -m "Initial submodule commit"
cd ..
git submodule add /home/myuser/public_html/subdirectory subdirectory
git add .
git commit -m "Initial commit of base files and submodule"
git push origin master
내 로컬 컴퓨터에서
git clone --recursive ssh://[email protected]/path/to/git mygitdirectory
그리고 깨끗한 클론처럼 보이는 있었는지의 꼬리 끝에, 나는 자식 서브 모듈 추가 및 하위 디렉토리에 자식 서브 모듈 업데이트가 같은 결과를 얻을 수 있습니다 시도
fatal: repository '/home/myuser/public_html/subdirectory' does not exist
Clone of '/home/myuser/public_html/subdirectory' into submodule path 'subdirectory' failed
얻을. 나는 모든 기본 파일들로 끝났지 만, 서브 디렉토리는 비어있다. 서버에서 git log는 기본 파일 + 서브 모듈의 커밋을 표시하고 기본 및 서브 모듈의 git status는 깨끗함을 보여줍니다.
난 도망 모든 것을 날려 다시에 서브 모듈 생성을 변경 시도
포스트 스크립트 : 복제에를 수행 할 때
[submodule "subdirectory"]
path = subdirectory
url = ./subdirectory
의 서버에 .gitmodules을 산출
git submodule add ./subdirectory ./subdirectory
로컬 컴퓨터에서 서브 모듈 부분에 도착했을 때 동일한 오류가 발생했습니다. 그래서,에 .gitmodules 변경 (다음 자식 서브 모듈의 동기화를했다) :
[submodule "subdirectory"]
path = subdirectory
url = ssh://[email protected]/path/to/git
독서 (많은) 다른 워크 플로우 제안, 내가 찾을 자신을 확신 (a)는 각 .gitmodules의 내용이 있어야 할 것 (나는 서버 하나가 맞다고 가정한다.) (b) 서버상의 슈퍼 repo가 푸시 된 원격 베어 레포가 유일한 베어 레포 일지 아니면 서브 모듈이 하나의 서브 마운트를 필요로하는지 (나는 서브 모듈이 super repo를 맨발의 repo (origin)로 푸시하는 슈퍼 레포는 서브 모듈 히스토리도 가져옵니다.) (c) 로컬 서브 모듈에 원격 정의가 필요한지 (서버에 표시되지 않았기 때문에 너무 국지적이지 않았다)
어떻게하면됩니까? .gitmodules 파일의 url을 repo url과 submodule의 상대 경로로 변경해 보았습니다. 그런 다음 repo url로 시도해 보았습니다. 둘 다 실패했습니다. git submodule 업데이트가 초기에 파일을 가져 오는 것뿐만 아니라 동기화 진행 상태를 계속 유지할 수 있도록하려면 필요합니까? – Ayen
.gitmodules의 하위 모듈에 대한 url을 ssh url로 변경했으며 git 하위 모듈을 동기화했습니다. 이제 gitmodule 업데이트를 수행 할 때 repo가 없다는 오류 대신 치명적인 오류가 발생합니다. 참조는 트리가 아닙니다. – Ayen
이 특정 오류가 발생하지 않았지만 가져올 때 복제하려고 시도합니다. 몇 시간 후에 집에 돌아온다. –