하위 폴더를 가리 키도록 git 하위 모듈을 변경하는 방법은 무엇입니까?


101

SubModule 자습서를 훑어 보면서 boto 프로젝트 에서 하위 모듈을 만들었습니다 . 그런 다음 실제로이 프로젝트의 하위 집합, 특히 boto 폴더 만 필요하다는 것을 발견했습니다 .

이 폴더를 가리 키도록 하위 모듈을 변경하고 싶습니다. .gitmodules를 보면

[submodule "backup/src/boto"]
    path = backup/src/boto
    url = https://github.com/boto/boto.git

https://github.com/boto/boto.git 대신 어떤 URL을 사용해야 합니까? URL을 변경 한 후 boto 폴더를 로컬에서 삭제하고 다시 가져와야합니까?


3
정확히 원하는 것이 아닙니다-서브 모듈이 아닙니다-하지만 당신은 볼 수 있습니다git subtree
Cascabel 2011 년

1
결국 내가 한 일은 전체 서브 모듈을 가지고 IntelliJ에게 boto 폴더가 '소스 폴더'라고 알려주므로 패키지를 찾을 수 있습니다.
ripper234 2011-03-15

15
나는 자식이 기본적으로 이것을하지 않는다는 것을 믿을 수 없다.
rogerdpack

2
- 비슷한 질문을 찾을 수 stackoverflow.com/questions/1121227/...
sashoalm

답변:


65

하위 모듈의 URL은 항상 저장소를 가리킬뿐입니다. git이 일반적으로 "좁은 복제"를 지원하지 않는 것과 같은 방식으로 저장소의 하위 폴더 만 원한다고 지정할 수는 없습니다.

전체 저장소를 하위 모듈로 사용할 수없는 경우 boto에서 복제 된 새 저장소를 항상 만든 다음 크론 작업을 다음과 같이 설정할 수 있습니다.

  1. git fetch 그 저장소를 디렉토리로
  2. git filter-branch하위 디렉토리가 최상위 수준에있는 분기를 업데이트하는 데 사용 합니다.
  3. 저장소의 해당 분기를 하위 모듈로 추가하십시오. 그러나 그것은 모두 약간 어리석은 일이며 전체 저장소를 하위 모듈로 사용하는 것이 선호됩니다.

24

저장소의 일부만 복제 할 수 없습니다. 이는 git이 저장소를 전체 객체로 취급하기 때문 입니다. 가져 오면 모두 가져옵니다 .

따라서 여기서 해결책은 다른 디렉토리에서 하위 모듈을 가져온 다음 심볼릭 링크를 사용하여 목표를 달성하는 것입니다.


나는 창에 심볼릭 링크가 있습니다 ...도 잘 작동합니다. (때문에 MSYS의의 내가 사용할 수 있도록 내가, 내 컴퓨터에서으니 ln -s리눅스처럼)
kumarharsh

7
Vista 및 MKLink와 함께 제공됩니다. 나는 그것을 사용합니다. howtogeek.com/howto/windows-vista/...
천사 S. 모레노

1
대신 하드 링크를 사용할 수 있습니다
KindDragon 2016 년

15

원하는 것은 서브 모듈에 분기를 만들고 폴더를 위로 이동하고 필요하지 않은 것을 삭제하는 것입니다. 그런 다음 대신 해당 분기를 관리 할 수 ​​있습니다. 변경 사항을 푸시하려면 먼저 백 머지를 할 수 있어야합니다. Git은 파일을 이동했음을 알고 병합을 성공적으로 수행합니다.

도움이 되었기를 바랍니다.


"역 병합"이란 무엇입니까? 예를 들어 줄 수 있습니까?
Sukima

상위 분기에서 하위 분기로 "업스트림"으로 이동하는 병합. Linus는 그것을 싫어합니다. 이미 합병되었을 수있는 다른 지점의 역사를 연결합니다.
Adam Dymitruk 2013

이 상황에서 "역 병합"에 대한 몇 가지 예를 추가해 주시겠습니까?
Xiao

일반적으로 모든 사람이 최신 변경 사항을 병합하는 주요 분기의 항목을 병합하여 기능 분기를 최신 상태로 유지하려고 할 때입니다. 이것은 당신의 지부를 다른 사람들의 일에 묶기 때문에 나쁘다. 제품에 브랜치가 필요하지만 이미 통합 브랜치에있는 다른 브랜치 중 하나는 필요하지 않은 경우 불가능합니다.
Adam Dymitruk

흥미로운 아이디어, 누군가 이것을 시도해 보셨습니까? 곧 시도해 보겠습니다.하지만 여전히 "back merge"가 명확하고 자동화 될 수 있는지 확실하지 않습니다.
moudrick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.