Як клонувати лише папку з підмодуля git?


79

Я намагаюся отримати лише папку із зовнішнього репозиторію github для використання в моєму проекті.

Я хочу, щоб моє налаштування проекту було таким:

-my_project
    -submodule
        -code.py
    -MY_README
    -.git

І у мене є віддалене репо з ім’ям деякий підмодуль із такою структурою:

-submodule
    -code.py
-README
-.gitignore

Тому я просто хочу, щоб папка підмодуля була додана до мого проекту.

Але я закінчую цим після

git підмодуль додати http://github.com/user/submodule.git підмодуль

-my_project
    -submodule
        -submodule
            -code.py
        -README
        -.gitignore
    -MY_README
    -.gitignore

Я новачок у git, тому я справді не знаю, чи можливо це за допомогою просто git. Якщо це допомагає, я використовую msysgit у Windows.

Отже, чи є в будь-якому випадку я можу отримати чисту папку підмодуля у своєму проекті із загальнодоступного репо?

Якщо вам цікаво, що саме я намагаюся зробити, я намагаюся взяти безпосередньо з їх репозиторіїв ці плагіни django 1 2, щоб додати їх до свого проекту.



Відповіді:


39

Те, що ви хочете зробити, неможливо, оскільки ви не можете клонувати частину сховища.

Переглянути деталі у двох примірниках Як змінити підмодуль git на вказівку на підпапку?


5
Хоча, строго кажучи, клонування лише частин сховища неможливе, з Git 1.7 існує рідкісна перевірка, щоб вирішити те, що, ймовірно, хоче OP. Див stackoverflow.com/questions/600079 / ...
Peterino

9

Якщо ти:

git submodule add http://github.com/user/submodule.git

безпосередньо під my_project, у вас має вийти бажана організація каталогів.

Зі git submodule addсторінки користувача :

Необов’язковим аргументом <path>є відносне розташування клонованого підмодуля, що існує у суперпроекті.
Якщо <path>не вказано, використовується "гуманістична" частина вихідного сховища ("repo" для " /path/to/repo.git" та " foo" для " host.xz:foo/.git").


Чудово! Я до кінця читав підручники, і я не читав посібник ... Я думав, що у моєму власному проекті з’явиться файл README підмодуля ... Велике спасибі!
demula

1
Хоча проблема є ... вона працює лише в тому випадку, якщо репо підмодуля має те саме ім'я, що і папка, яку я хочу використовувати, але якщо ні, тобто: repo-> django-submodule name name>> submodule, воно вже не працює. Давайте подивимось, чи знайду я якийсь обхідний шлях
demula

Вибачте, чоловіче, я спробував ваше рішення з одним із репозиторіїв, який був добре структурований, і я думав, що проблема вже вирішена ... моє погане.
demula

5

просто

git submodule update --init --recursive

у кореневому каталозі вашого проекту, і він повинен робити те, що ви хочете

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.