2015-01-02 3 views
3

하위 모듈이 dir1/dir2 (아래 표시된 단계를 통해 생성 됨) 인 것으로 가정합니다. 하위 모듈을 삭제 한 후 서브 프레임을 복원하려면 어떻게합니까? dir2?삭제 된 하위 모듈 복원

git submodule update은 서브 모듈이 존재하지 않는다고 불평하고 git reset HEAD --harddir2을 복원하지만 그 내용은 복원하지 않습니다. 나는 다음과 같은 방법으로 서브 모듈을 만드는 오전 :

mkdir dir1 
cd dir1/ 
mkdir dir2 

cd dir2/ 
touch 1.txt 
git init 
git add 1.txt 
git commit -m "test" 

cd .. 
git init 
git submodule add ./dir2/ 
git commit -m "adding submodule" 

rm -r dir2 
**** Now how do I restore dir2 and its contents? **** 
+0

'git submodule update --init'이 트릭을하지 않습니까? – VonC

+0

@VonC : 아니요 '치명적인 : 저장소'를 얻습니다. dir1/dir2가 존재하지 않습니다. '오류 메시지 – artella

+0

''git submodule update --init' 전에'mkdir dir1/dir2'를 쓰면 어떻게 될까요? 또한 Git의 어떤 버전을 사용하고 있습니까? – VonC

답변

1

dir2 서브 모듈을하지 않습니다 dir2 (cd dir2; git init) 내 자식의 repo를 초기화.

단지 dir2은 상위 레포에서 무시되는 중첩 된 레포로 만듭니다.
dir2을 삭제하면 콘텐츠를 직접 가져올 수 없다는 의미입니다.

는 당신은 dir1의 외부 dir2의 repo 로, git submodule add /another/path/dir2을 할 수 있었다.
그런 다음 dir2을 복원 할 수있었습니다.

+0

그냥 추가하기 위해 위에서 언급 한 'git submodule update --init' 명령은'dir2'를 복원합니다. – artella